假設我有2個表:多列性能的左連接?
table1 :(20.000 records)
id code1 code2 something status
table2: (7.500 records)
id code1 code2 name
所有我想要通過使用本查詢列表中的「名稱」表1中的所有記錄表2:
SELECT DISTINCT `tb1`.*, `tb2`.`name` FROM `table1` AS `tb1`
LEFT JOIN `table2` AS `tb2`
ON (tb1.code1 = tb2.code1 AND tb1.code2 = tb2.code2)
WHERE (tb1.status = 1)
但我花了太長時間檢索數據(5分鐘後我仍然無法看到結果)。
這樣做的最好方法是什麼?
在此先感謝..
當你只想要右手錶的某些狀態的記錄時,爲什麼要進行LEFT JOIN?只要做一個INNER JOIN,並檢查你的表是否有適當的索引。 – nnnnnn
糟糕,我的排字錯誤。對不起:D。我更新了我的問題 –
您確定自己的數據是否如您期望的那樣?在table2中有多行具有相同的code1和code2(例如多行Code1 ='abc'和code2 ='def')?如果花費5分鐘以上,則必須拉回HEAP行。 – mwan