问个 Mysql 数据库中 sql where 条件顺序对查询效率的影响的问题

2018-08-09 10:48:27 +08:00
 Cihua
查询一个数据量很大的表
一下两个顺序
where 无索引字段(该字段只有 1-20) = 1 and ctime(时间戳有索引)> 昨天开始时间 and ctime(时间戳有索引)<昨天结束时间;
where ctime(时间戳有索引)> 昨天开始时间 and ctime(时间戳有索引)<昨天结束时间 and 无索引字段(该字段只有 1-20) = 1 ;

查询速度是否一样,以前查资料是说先执行过滤掉较多数据的条件,效率会高,因为后面会在前面的结果里再次筛选查询;
今天问了下 DBA 说两种没影响,对于 DBA 的结论,我理解是都去扫描了数据库所有的数据,所以查询是一样的...;
所以比较好奇究竟哪种效率高....数据多,缓存问题,我在自己的本地数据库中测不出来= =;
特来问一下- -
2288 次点击
所在节点    程序员
3 条回复
FrailLove
2018-08-09 11:13:06 +08:00
没有区别 优化器比你聪明
kiwi95
2018-08-09 11:32:42 +08:00
很旧的版本 where 顺序有影响,现在的版本没影响
beaconfire
2018-08-09 11:44:39 +08:00
符合索引了解一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/478176

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX