旗下导航:搜·么
当前位置:网站首页 > MySQL教程 > 正文

mysql为何要索引【MySQL教程】,mysql

作者:搜教程发布时间:2019-12-01分类:MySQL教程浏览:55评论:0


导读:由于索引能够疾速进步查询速率;假如不运用索引,mysql必需从第一条纪录最先然后读完悉数表直到找出相干的行;表越大消费的时候越多,但也不全是如许;引荐课程:MySQL教...
由于索引能够疾速进步查询速率;假如不运用索引,mysql必需从第一条纪录最先然后读完悉数表直到找出相干的行;
表越大消费的时候越多,但也不全是如许;

引荐课程:MySQL教程。

索引是数据构造;

所以,在数据以外,数据库系统还维护着满足特定查找算法的数据构造,这些数据构造以某种体式格局援用(指向)数据,如许就能够在这些数据构造上完成高等查找算法。这类数据构造,就是索引。

索引数据构造剖析

这个索引是个啥构造呢?换句话说,为啥这个构造就能够进步检索速率呢?

若没有索引,搜刮某个纪录时(比方查找name='wish')须要搜刮一切的纪录,由于不能保证只要一个wish,必需悉数搜刮一遍.

若在name上竖立索引,mysql会对全表举行一次搜刮,将每条纪录的name值查找升序分列,然后构建索引条目(name和row_id),存储到索引段中,查询name为wish时即可直接查找对应处所.

3.创建了索引并不一定就会运用,mysql自动统计表的信息后,决议是不是运用索引,表中数据很少时运用全表扫描速率已很快,没有必要运用索引.

举例说明索引的事情机制

表A中有两个字段

id,name

表中如今有1000万条数据

需求:依据name查询出对应的id

假如没有索引,那就得查询表中一切纪录,就得把1000万条数据都得挨个查一遍,你说慢不慢。

如今依据name竖立索引,

索引表构造:

id,name,value

个中value是表A的id,以json数组的体式格局寄存(由于会有多个name雷同的状况存在);

然后能够依据排序划定规矩对name举行排序,

依据算法能够直接定位到name在索引表中的位置,

然后就能够掏出表A 中的id地点的纪录。

简而言之,就是经由过程竖立索引,能够直达表A中的纪录。

固然快了,想必需查询表A要查询1000万条数据,经由过程竖立索引,以算法大大减少了查询量。

以上就是mysql为何要索引的细致内容,更多请关注ki4网别的相干文章!

标签:mysql


欢迎 发表评论: