mysql b 1_mysql B+树 Cardinality MRR

B+树索引并不能找到一个给定键值的具体行,而是被查找数据行所在的页。然后数据库通过把页读入到内存,再在内存中进行查找,最后得到想要查找的数据。

Show index from table.

53d62f1d912d843e47599833494b9710.png

Cardinality值非常关键,表示索引中不重复记录数量的预估值。值得注意的是,它仅是一个预估值,而不是一个准确值,基本上用户也不可能得到一个准确的值。在实际应用中,Cardinality/n_rows_in_table应尽可能地接近1.如果非常小,那么用户需要考虑是否还有必要创建这个索引。故在访问高选择性属性的字段并从表中取出很少一部分数据时,对这个字段添加B+树索引是非常有必要的。

MRR:

在mysql5.6版本开始支持,MRR(Multi-Range Read)优化的目的是为了减少磁盘的随机访问,并且将随机访问转化为较为顺序的数据访问,这对于IO-Bound类型的SQL查询语句可带来性能极大的提升。其好处有:

(1)MRR使数据访问变得较为顺序,在查询辅助索引时,首先根据得到的查询结果,按照主键进行排序,并按照主键顺序的顺序进行书签查找。

(2)减少缓冲池中页被替换的次数

(3)批量处理对键值的查询操作

d57d664b98f563d329ffc7ada703a331.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值