MySQL 创建高性能索引

B-Tree与HASH索引对比

    一、索引类型

    B-Tree索引:

    B-Tree通常间意味着以后有的值都是按顺序存储的,并且每一个叶子页到根的距离相同。

    B-Tree索引 列是顺序组织存储的,所以很适合查找 范围数据。

    B-Tree索引对如下类型的查询有效

    全值匹配、匹配最左前缀、匹配列前缀、匹配范围值、精确匹配某一列并范围匹配别外一列、只访问索引的查询

    B-Tree索引的限制:

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

    不能跳过索引中的列。

    如果查询中某个列的范围查询,刚其右边所有列都无法使用索引优化查询。

    HASH索引:

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

    在MySQL中,只有Memory引擎显式支持哈希索引。这也是Memore 引擎表默认索引类型,Memore引擎同时也支持B-Tree索引。

    HASH索引的限制:

    哈希索引只包含哈希值和行指针,而不存储字段值,所以不能使用索引 中的值来避免读取行。

    不过,访问内存中行的速度很快,所以大部分情况下这一点对性能的影响并不明显。

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

    哈希索引 也不支持部分索引列匹配查找,因为哈希索引始终是使用索引列的全部内空来计算哈希值的。如果在 列(a,a2)

上建立了索引,如果查询只有列a 刚无法使用该索引 。

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

转载于:https://my.oschina.net/lavedream/blog/525942

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值