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

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日

悬赏问题

  • ¥15 模电中二极管,三极管和电容的应用
  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络