请教执行计划与实际执行的差异

2020-06-06 12:09:30 +08:00
 qumingkunnan
2256 次点击
所在节点    MySQL
6 条回复
lpts007
2020-06-06 16:51:25 +08:00
没法回答。按理说不应该这个表现。软硬件配置上一下,sql 、表结构、explain 结果上一下。
qumingkunnan
2020-06-08 13:52:36 +08:00
@lpts007 MySQL 版本 5.6 http://sqlfiddle.com/#!9/a1a69f/5 给了脱敏后的结构和 SQL,执行计划二者基本没区别,但是真的执行时间还是和我题中描述的那样,硬件配置也给不了,没有这个服务器的权限,抱歉
qumingkunnan
2020-06-08 14:50:36 +08:00
@lpts007 这个问题,第一种执行计划扫描了所有行,第二种只有 OR 关系个数的行被扫描,应该是这个问题了。但是不知道为什么第一种会扫描全表的行
lpts007
2020-06-08 20:14:15 +08:00
查询快的那种,到底多快? 70 多秒?
慢的那个 force index 试一下,我看着两个语句也确实一样。
lpts007
2020-06-09 10:34:25 +08:00
@qumingkunnan 另外感觉挺奇怪的 你这个语句。 col1,2,3 是主键,那还 group by col1,2,3 干啥 sum 也没什么用啊,根本不需要。是不是脱敏脱得过头了 跟原意不一致了?
qumingkunnan
2020-06-09 18:33:42 +08:00
@lpts007 嗯,是有些不一致了,是我的问题,多谢了!我比较纠结的是两种写法的执行效率问题,确认了多列 in 确实会执行更慢

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

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

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

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

© 2021 V2EX