MySQL 组合索引

伟洪winni 2020-11-14 04:30:28
建立一个组合索引 a,b
SQL语句1: select * from table from a>4 and b<9
SQL语句2: select * from table from b<9 and a>4

这两条SQL语句查询效率是一样的吗?
...全文
327 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
柯南在写代码 2020-12-02
  • 打赏
  • 举报
回复
一样的,这是由MySQL的分析器决定的,MySQL会做语义分析的。这一步是在 server 层做的。
伟洪winni 2020-11-28
  • 打赏
  • 举报
回复
伟洪winni 2020-11-25
  • 打赏
  • 举报
回复
有文章说组合索引, 要是前面的字段有 >或 < , 后面的字段就用不到索引了
银点 2020-11-17
  • 打赏
  • 举报
回复
引用 4 楼 伟洪winnie 的回复:
那 where 后面的字段就不会因为顺序而影响性能了
where语句里字段的顺序要与组合索引的顺序一致,从左向右,由精确室范围才会命中索引
chengangcsdn 2020-11-16
  • 打赏
  • 举报
回复
一样的哈, where条件顺序 不会影响 组合索引的使用。 这个你完全可以explain验证。 具体索引执行细节会这样。会根据 a字段的条件 快速定位到索引,然后b字段是无法快速定位的。但可以用到 icp 然后再回表到行信息。
AHUA1001 2020-11-16
  • 打赏
  • 举报
回复
一样的,没有区别。
伟洪winni 2020-11-16
  • 打赏
  • 举报
回复
那 where 后面的字段就不会因为顺序而影响性能了
卖水果的net 2020-11-14
  • 打赏
  • 举报
回复
执行计划肯定是一模一样的,所以它的效率也是一样的。 也就是说,这两个语句是等价的。

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧