索引分为
B-tree索引
特点:
1、可以进行全值匹配查找
2、可以进行最左匹配查找
3、可以进行列前缀匹配(联合索引,只能是最左列)
4、匹配范围查找
5、精确匹配一列,另一列范围查找(联合索引要注意索引顺序)
限制:
1、对于联合索引,如果不是按照列的最左列开始查找,则无法使用索引
2、对于联合索引,不能跳过索引中的列
3、对于联合索引,如果查询中有某个列的范围查询,则其右边所有列都无法使用索引优化
哈希索引
特点:
1、只能当精确匹配索引所有列才能起作用
2、哈希索引就行将所有索引列的值进行哈希取值,然后将值指向数据行
限制:
1、哈希索引只包含哈希值和行指针,而不存储字段值,所以无法进行索引覆盖查询
2、哈希索引行数据不是按照哈希值顺序存储的,所以无法用于排序
3、哈希索引不支持部分索引列匹配查找
4、哈希索引只支持等值比较查询
5、哈希索引非常快,但是当出现哈希冲突之后,存储引擎会遍历链表中所有的行指针
6、哈希索引如果冲突很严重的话,会导致索引维护操作的代价很高
注释:Innodb存储引擎采用自适应哈希索引,统计索引的访问次数,对于访问次数多的索引,则在索引上层建立哈希索引。
三星索引
1、索引将相关记录放在一起属于一星
2、索引中数据顺序和查找中的排列顺序一致属于二星
3、索引中包含了全部要查找的列属于三星
Mysql索引
最新推荐文章于 2024-07-20 16:33:27 发布