拾 光 2021-10-22 17:18 采纳率: 100%
浏览 79
已结题

mysql 为什么大于后面字段不走索引,大于等于后面就会走?

img

mysql为什么大于后面字段不走索引,大于等于后面就会走?这样的话大于等于是不是也算作一种优化手段,

比如原来索引idx_id_name_age这种索引,

where id >5 and name = 'zhang' and age = 15; 只走id 索引列

而改成 where id >= 6 and name = 'zhang' and age = 15; 是不是三个字段都可以走索引了

  • 写回答

1条回答 默认 最新

  • 渔不是鱼 2021-10-22 17:40
    关注

    很简答,第一个sql索引只走到了name,
    第二个索引走到了name,age

    所以key_len 可以看到第一个22,第二个26.
    至于为什么这样,是因为MySQL索引的匹配原则是在遇到第一个非=好判断时就停止往后匹配。
    这里26是因为在等于2的时候那条记录会用到索引匹配,后边其他的仍旧是22,但是肯定是取两者最大值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月2日
  • 已采纳回答 10月25日
  • 创建了问题 10月22日

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码