mysql 第五讲 深入浅出索引(下)

mysql 第五讲

回到主键索引树搜索的过程,我们称为回表 。
有没有可能经过索引优化,避免回表过程呢?
覆盖索引
如果执行的语句是select ID(主键) from T where k between 3 and 5,这时只需要查ID的值,而ID的值 已经在k索引树上了。就可以直接使用结果。
是否有必要将身份 证号和名字建立联合索引?
如果现在有一个高频请求,要根据市民的身份证号查询他的姓名,这个联合索引就有意义了 。可以在这个高频请求上用覆盖索引。
最左前缀原则
在这里插入图片描述

当你的逻辑需求是查到所有名字是“张三”的人时,可以快速定位到ID4,然后向后遍历得到所有 需要的结果。
这个最左 前缀可以是联合索引的最左N个字段,也可以是字符串索引的最左M个字符。
这里我们的评估标准是,索引的复用能力。因为可以支持最左前缀,所以当已经有了(a,b)这个联 合索引后,一般就不需要单独在a上建立索引了 因此, 第一原则是,如果通过调整顺序,可 以少维护一个索引,那么这个顺序往往就是需要优先考虑采用的。
a,b的顺序?看空间,比如name>age,所以(name,age)
索引下推
在这里插入图片描述

InnoDB在(name,age)索引内部就判断了age是否等于10,对于不等于10的 记录,直接判断并跳过。在我们的这个例子中,只需要对ID4、ID5这两条记录回表取数据判 断,就只需要回表2次。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值