mysql索引方式_MySQL数据库的索引方式

MySQL目前主要支持索引方法:B-Tree,Hash,R-Tree

B-Tree

B-Tree是最常见的索引类型,所有的列都是排序过的,每个叶节点跟节点距离相等。因此,B-Tree适合查找范围的数据,可以直接支持数据排序。

B-Tree在MyISANYO中,索引文件是记录磁盘的地址;而在InnoDB中有索引,所以可以根据索引记录,直接找到叶节点的数据域。

e9820d261511302c9d644e076182844d.png

Hash索引

83e8c0b96c601b4e25bef5785362337e.png

特点:

1.检索效率搞,索引的检索可以一次定位,不像B-Tree索引需要从根节点到枝节点,需要多次IO访问。

2.由于Hash索引比较的是进行Hash运算之后的Hash值,所以即使取满足某个Hash键值的数据的记录条数,也无法从Hash索引中直接完成查询,还是要通过访问表中的实际数据进行相应的比较,并得到相应的结果。因此,在任何时候都不能避免表扫描。

3.仅支持精确查询,例如:"=","IN"和"<=>",不能使用范围查询:由于Hash索引比较的是进行Hash运算之后的Hash值,无法判断返回,所以它只能用于等值的过滤,不能用于基于范围的过滤。

4.不支持排序:由于Hash索引中存放的是经过Hash计算之后的Hash值,而且Hash值的大小关系并不一定和Hash运算前的键值完全一样,所以数据库无法利用索引的数据来避免任何排序运算。

5.只有Memory引擎支持显式的Hash索引,但是它的Hash是nonunique的,冲突太多时也会影响查找性能。Memory引擎默认的索引类型即是Hash索引,虽然它也支持B-Tree索引

R-Tree索引

R-Tree在MySQL很少使用,仅支持geometry数据类型,支持该类型的存储引擎只有MyISAM、BDb、InnoDb、NDb、Archive几种。

fa12ab829fbc6f9a115018773fd90ba9.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值