我有一個嵌套的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',因爲這通常會更快。 –