我有一个嵌套的MySQL查询在表中有超过500000条记录的关系。该查询需要60秒才能获取结果,并且索引编制已在所有表中完成。减少嵌套mysql查询的时间
请建议减少执行时间。提前致谢。
SELECT t1.col1,t1.col2
FROM table1 AS t1
WHERE t1.col2 IN
(
SELECT DISTINCT(t2.col1) FROM table2 AS t2 WHERE t2.col2 IN
(
SELECT t3.col1
FROM table3 AS t3
WHERE t3.col2 = '04' ORDER BY t3.col1 ASC
)
ORDER BY t2.col1 ASC
)
为什么要使用排序??? – apomene
其要求 – DevOps
您只应订购最终结果集。尝试分析查询以查看导致执行时间过长的原因;这很可能是你的“DISTINCT”条款,因为它们往往会造成延误。另外,您可以尝试使用'JOIN'而不是'WHERE ... IN',因为这通常会更快。 –