索引的优点和类型

目录

1、优点

2、类型

B-Tree索引

哈希索引

空间数据索引(R-Tree)

全文索引


1、优点

  1. 索引大大减少了服务器需要扫描的数据量。
  2. 索引可以帮助服务器避免排序和临时表。
  3. 索引可以将随机 I/O 变为 顺序 I/O。

2、类型

B-Tree索引

理论:B-Tree的推导讲解

B-Tree 索引的限制:

1. 如果不是按照索引的最左列开始查找,则无法使用索引。

2. 不能跳过索引中的列。也就是多个字段组成的索引,必须从第一个字段开始,跳过则不走索引。

3. 如果查询中有某个列的范围查询,则其右边所有列都无法使用索引优化查找。例如索引 key(a, b, c),有查询条件为:where a=1 and b like 'a%' and c=2,这个查询只能使用索引的前两列,因为这里like是一个范围查询。如果范围查询列值的数量有限,那么可以通过使用多个等于条件来代替范围条件,这样后续列就可以继续用索引。注意:in不属于范围查找,可以走索引。

哈希索引

哈希索引基于哈希表实现,只有精确匹配索引所有列的查询才有效。

在 MySQL中,只有 Memory 引擎显式支持哈希索引。

因为索引自身只需存储对应的哈希值,所以索引的结构十分紧凑,这也让哈希索引查找的速度非常快。

哈希索引的限制

1. 哈希索引只包含哈希值和行指针,而不存储字段值,所以不能使用索引中的值来避免读取行。不过,访问内存中的行的速度很快,所以大部分情况下这一点对性能的影响并不明显。

2. 哈希索引数据并不是按照索引值顺序存储的,所以也就无法用于排序。

3. 哈希索引页不支持部分索引列匹配查找,因为哈希索引始终是使用索引列的全部内容计算哈希值的。

4. 哈希索引只支持等值比较查询。

5. 访问哈希索引的数据非常快,除非有很多哈希冲突。当出现哈希冲突的时候,存储引擎必须遍历链表中所有的行指针,逐行进行比较,直到找到所有符合条件的行。

6. 如果哈希冲突很多的话,一些索引维护操作的代价也会很高。

空间数据索引(R-Tree)

MyISAM 表支持空间索引,可以用作地理数据存储。

全文索引

全文索引是一种特殊类型的索引,它查找的是文本中的关键词,而不是直接比较索引中的值。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值