【发布时间】:2013-06-23 13:23:52
【问题描述】:
部分查询是:
SELECT * FROM `o` WHERE ....
AND `id` IN (SELECT DISTINCT `id` FROM `o` WHERE `activity` = '1' AND `date` < '20130310' ORDER BY `id` ASC)
AND `id` NOT IN (SELECT DISTINCT `id` FROM `o` WHERE `activity` = '1' AND `date` BETWEEN '20130310' AND '20130329' ORDER BY `id` ASC)
....
:在20130310之前有活动而在20130310 AND 20130329之间没有活动的ID
1) 我可以加速这个 mysql 查询吗?
2) 是否有助于ORDER BY 提高IN 和NOT IN 的速度?
【问题讨论】:
-
不需要通过命令使用命令
-
@Ankit 你有这方面的参考资料吗?
-
为什么需要这个 order by 的引用是对选中记录进行排序的命令,在子查询中使用时不需要对选中记录进行排序。你可以自己试试通过删除它,您将看到查询结果没有任何变化
标签: mysql performance subquery query-optimization