1
我想選擇一些項目從表1 不在表2。 表1約有3百萬行,表2約有8,000。我已經有表1(過期,不可靠,阻止,刪除,標誌,expirationDate)的索引。我該如何優化:如何優化左連接查詢的大表
SELECT table1.*
FROM table1
LEFT JOIN table2
ON table1.item_ID = table2.item_ID
WHERE table1.expire = '0'
AND table1.unreliable = '0'
AND table1.block = '0'
AND table1.deleted = '0'
AND table1.flag = '0'
AND table1.expirationDate >= CURDATE()
AND table2.item_ID IS NULL
GROUP BY item_ID
LIMIT 5000
但不應該這些索引存在,因爲item_ID是兩個表中的主鍵? – user2694306
你沒有說'item_ID'是你的主鍵。我不確定mysql是否會自動爲主鍵創建索引。我相信要記住,情況並非如此。你可以簡單地使用'SHOW INDEX'來檢查。如果它不顯示這樣的索引,它不存在。 –
啊,你是對的,它不是第二張表中的主鍵。現在它似乎運作良好。謝謝! – user2694306