inner join和left join各自在什麼情境下執行效率會相對高一些呢?
left join在任何場景下都不會比inner join的執行效率高 因為left join除了需要所有inner join的結果集以外還需要左表的所有沒有關聯上的數據
left join除了要求關聯欄位有索引以外,最好將小表作為左表,因為檢索的循環次數較少,前提是你的業務邏輯沒問題,因為不同的寫法邏輯是不一樣的
inner join會自動選擇合適的表作為基礎表,也仍然要求有關聯字段索引,並且最好是int型檢索效率更高
說真心的,你問問題的方向也不太對。 。 。 只是限制條件和索引還是查詢合理,速度都很快inner join 不以誰為基礎,展示符合條件的數據left join 以左為基礎,連右表
就效率來說 肯定是小表連大表快從一個MySQL left join優化的例子加深對查詢計劃的理解
left join在任何場景下都不會比inner join的執行效率高 因為left join除了需要所有inner join的結果集以外還需要左表的所有沒有關聯上的數據
left join除了要求關聯欄位有索引以外,最好將小表作為左表,因為檢索的循環次數較少,前提是你的業務邏輯沒問題,因為不同的寫法邏輯是不一樣的
inner join會自動選擇合適的表作為基礎表,也仍然要求有關聯字段索引,並且最好是int型檢索效率更高
說真心的,你問問題的方向也不太對。 。 。
只是限制條件和索引還是查詢合理,速度都很快
inner join 不以誰為基礎,展示符合條件的數據
left join 以左為基礎,連右表
就效率來說 肯定是小表連大表快
從一個MySQL left join優化的例子加深對查詢計劃的理解