开发者社区> 问答> 正文

mysql里的where条件顺序对使用索引是否有影响

比如user表有a和b连个字段,而且都做了索引,那么我构建查询语句

SELECT * FROM user WHERE a = 1 AND b = 2

SELECT * FROM user WHERE b = 2 AND a = 1
如果满足a条件行数远大于满足b的,是否调整它们的顺序会产生区别?

展开
收起
a123456678 2016-06-29 14:14:13 5571 0
2 条回答
写回答
取消 提交回答
  • 看版本,从某个mysql版本以后,顺序就没有影响了,会优化的。具体看执行计划

    2019-07-17 19:49:06
    赞同 展开评论 打赏
  • 如果经常有这种查询, 建议建个a 和 b的联合索引,是最有效的优化。
    缺点是,新建索引会增加占用的空间,降低插入速度
    不建联合索引,两列又都有索引时,mysql会有采取自己的算法去选区最快点索引,
    如果你很清楚,从a还是b查起来更快, 可以使用强制索引FORCE INDEX (FIELD1)
    多用 explain去观察, 优化你的sql

    2019-07-17 19:49:05
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像