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;
索引(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;
相关文章推荐
- MySQL - InnoDB存储引擎 - MySQL介绍
- MySQL存储引擎及InnoDB并发控制介绍
- MySQL存储引擎 InnoDB 介绍
- MySQL技术内幕-InnoDB存储引擎读写笔记(索引概述)
- MySQL存储引擎InnoDB、MyISAM 、其它存储引擎介绍
- mysql 开发基础系列10 存储引擎 InnoDB 介绍
- 做一个合格的程序猿之MYSQL存储引擎INNODB简介--初识索引(三)
- mysql innodb存储引擎的聚集索引
- MySQL - InnoDB存储引擎 - MySQL介绍
- mysql的存储引擎innodb、myisam对插入影响和索引对插入的影响
- MySQL存储引擎及InnoDB并发控制介绍 推荐
- mysql 存储引擎 innodb 学习复习 之 索引
- MySQL最常用的二种存储引擎MyISAM和InnoDB的介绍
- mysql修改数据库的存储引擎(InnoDB)
- Mysql NDB and InnoDB 存储引擎区别
- MySQL存储引擎简介及MyISAM和InnoDB的区别
- 02: MySQL 索引类型 、 MySQL 存储引擎
- MySQL存储引擎介绍之Memory
- MySQL存储引擎--MyISAM与InnoDB区别
- 【MySQL存储引擎】MyISAM、InnoDB和MEMORY特性对比