我有以下查詢運行在MySQL 5.6中可愛,但在5.5它需要10秒執行,我知道有一個性能問題與舊的MySQL版本的NOT IN子句,但我沒有看到另一種方式來處理它在舊版本的MySQL,我真的很感激任何建議:Mysql查詢建議的Mysql 5.5
SELECT
DISTINCT C.chapter,
J.name
FROM chart as C
INNER JOIN resume as J ON J.serie_id = C.serie_id
WHERE chapter NOT IN
(
SELECT DISTINCT chapter FROM chart WHERE recorded = '0000-00-00'
)
AND
(
C.chapter NOT IN
(
SELECT chapter FROM chart_2
)
)
ORDER BY chapter DESC
Bassicly它的作用是從圖表表,然後從連接表的名稱選擇獨特的章節,然後再次選擇從圖表獨特的章節開始,其日期爲0000-00-00這意味着尚未記錄,並使用NOT IT進行匹配以排除第一個子查詢中的那些。我使用的是獨特的,因爲在圖表中,章節可以重複多次,我只想選擇那些記錄爲單個結果的章節(如分組)。最後,檢查chart_2表中不存在的章節。它可以在MySQL 5.6上正常工作,但在5.5中只需要很長時間。有任何想法嗎?
您是否已經嘗試對此查詢進行說明? – davey
是的使用解釋,看看它看起來如何。 –
確定在我的路上,生病報告 – Aramil