大佬看看这条 sql 语句怎么优化

2019-03-30 18:03:05 +08:00
 ckjianzhong7

SELECT count(traffic_id) FROM traffic WHERE traffic_enterTime >= date_sub(curdate(),interval 1 day) AND traffic_enterTime <= date_sub(curdate(),interval 0 day) UNION SELECT count(DISTINCT traffic_ip) FROM (SELECT * FROM traffic WHERE traffic_enterTime >= date_sub(curdate(),interval 1 day) AND traffic_enterTime <= date_sub(curdate(),interval 0 day)) as subfrom;

1421 次点击
所在节点    问与答
5 条回复
ckjianzhong7
2019-03-30 18:17:22 +08:00
SELECT count(traffic_id) FROM traffic WHERE traffic_enterTime >= date_sub(curdate(),interval 1 day) AND traffic_enterTime <= date_sub(curdate(),interval 0 day) UNION SELECT count(DISTINCT traffic_ip) FROM traffic WHERE traffic_enterTime >= date_sub(curdate(),interval 1 day) AND traffic_enterTime <= date_sub(curdate(),interval 0 day);
des
2019-03-30 18:35:00 +08:00
数据结构没有,有没有索引,数据量,EXPLAIN 都没有,你想怎么优化?
在 traffic_enterTime 加个索引先?
murmur
2019-03-30 18:53:08 +08:00
没有 explain 你让我们对着你的帖子 explain 么
程序员也不是神啊
GGGG430
2019-03-30 19:48:19 +08:00
拆分为多个子 sql,不要在 sql 里用函数
gosleep
2019-03-31 14:22:32 +08:00
看过优化好像用 explain 返回的结果可以获取行数,搜一下…

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

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

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

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

© 2021 V2EX