Optimization

使用 JOIN 與不使用 JOIN 比較查詢完成速度

  • May 4, 2017

我一直在尋找這個,但仍然沒有得到滿意的答案。我的問題是,我有 2 個表,例如表 A 和表 B。

表 A 包括:id (pk)、名稱、地址 表 B 包括:b_id (pk)、id(fk - 來自表 A)、工具

這兩個表之間的關係是一對多的。因此,A 的每一行在表 B 中可能有多個項目。

通常,我總是使用這種方式:

  • 我從表 A 中選擇一行
SELECT * FROM A WHERE id = 1
  • 然後我從表 B 中選擇更多數據
SELECT * FROM B WHERE b.id = 1

這種方法有效嗎?這比使用 JOIN 更好嗎,比如

SELECT A.id, A.name, A.address, B.b_id, B.tools 
FROM a 
 LEFT JOIN b ON a.id = b.id 
WHERE a.id = 1

我應該更好地使用 JOIN 嗎?

我建議使用 JOIN ,原因如下:

  1. 尤其是如果索引設計得當,並且以後查詢變得複雜,它會得到優化。
  2. 易於閱讀和理解,更整潔的程式碼和一個結果集
  3. 這是專業人士的做法
  4. 選擇唯一需要的列,而不是所有可能增加網路流量的列

引用自:https://dba.stackexchange.com/questions/172697