我有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