您的位置:首页 > 数据库 > MySQL

mysql中存储引擎为Innodb的索引介绍

2018-01-28 12:18 661 查看
一、简介

索引(mysql中也加键,即key,建索引时就会用到)是存储引擎用于快速查找到记录的一种数据结构。

在mysql中,索引是在存储引擎层(不是服务层)实现的。索引有聚簇索引、覆盖索引。

二、存储引擎为Innodb的索引知识点

1、索引通常是用B-tree树这种数据结构实现的,Innodb使用的B+tree。

2、索引树上的节点是有序的。

三、索引类型

1、聚簇索引

聚簇索引,也是一种存储方式,同一结构上保存了B-tree索引和数据行,即索引的叶子页存放的就是数据行。一个表只能有一个聚簇索引。

通常Innodb是通过主键聚集数据的,若没主键,则会选择一个唯一的非空索引代替,若还没有,则会隐式定义一个主键作为聚簇索引。

2、覆盖索引

覆盖索引,即索引中就包含了查询结果所需要的字段。

四、索引的作用

1、快速检索数据

2、通过覆盖索引直接获取数据

3、查询结果排序(order by操作)

五、索引注意事项

1、索引采用匹配最左前缀,即查询条件在索引中从左匹配,中间不跳过索引列,断了就只能使用到匹配上的一部分索引。

2、对于范围查询(如select * from stu where id>2),mysql无法使用范围列后面的其它索引,因此遇这种情况,可以的话,尽量用多个等值条件查询

(即in代替,如select * from stu where id in(3,4))。

3、若要使用索引,查询中的列必须是独立的列,即不能是表达式的一部分(如select * from stu where id+2=3),

也不能是函数的参数(select * from stu where date(create_time))。

4、对于有多个索引的表,查询时,存储引擎会自动选择最优的索引使用。

5、查看索引,如show index from stu;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: