我有2個表,我試圖比較。這些表是相同的結構,並且應該與每個60,000個條目完全相同。但是有些條目是不同的,我想找到問題。我目前正試圖對每個人進行左連接並顯示結果。我目前正在獲取結果,但每個查詢需要12分鐘。SQL左連接需要12分鐘
表1(temp_entries)
ID | File
表2(temp_dir_scan)
ID | File
查詢1(12.25分鐘)
SELECT A.ID, A.File
FROM temp_entries A
LEFT JOIN temp_dir_scan B ON A.File = B.File
WHERE B.File is Null
查詢2(12.26分鐘)
SELECT A.File
FROM temp_dir_scan A
LEFT JOIN temp_entries B ON A.File = B.File
WHERE B.File is Null
查詢3(11.54分)
SELECT A.ID, A.File
FROM temp_entries A
Where A.File not in (select B.File from temp_dir_scan B)
這是怎麼回事?或者我能做些什麼來加快速度?什麼是合理的時間來完成這個?
這裏是結果的例子。
1|test.txt
2|test2.txt
45|temp.jpg
請顯示EXPLAIN SELECT的結果A.ID,A.File FROM temp_entries A LEFT JOIN temp_dir_scan B ON A.File = B.File WHERE B.File爲空 ,同時也解釋選擇A.File FROM temp_dir_scan A LEFT JOIN temp_entries B ON A.File = B.File WHERE B.File是空的,所以我們可以看到發生了什麼 –
您可以在文件'File'上創建索引 – HubertL
您可以嘗試not in子句:SELECT A.ID, A.File FROM temp_entries A.Filenot in(從temp_dir_scan B中選擇B.File) – bdn02