SQL 兩表關聯查詢 where 條件中等號兩端字段順序對效率的影響

現有兩表A(大)、B(小)作關聯查詢,SQL語句如下:

SQL1:select * from A,B where A.id = B.id

SQL2:select * from A,B where B.id = A.id

在寫SQL的時候可能這個順序都是隨便寫的,當然SQL1和SQL2 執行的結果是完全相同的,那效率是否也一樣呢,答案是否定的。SQL1 相當於將A表的id取出來,然後遍歷B表進行查詢,SQL2相當於將B表的id取出來,然後遍歷A表進行查詢。如果表A的記錄條數爲m,表B的記錄條數爲n,SQL1比較的次數爲n的m次方,SQL2比較的次數爲m的n次方。所以在一般情況下,表A大,表B小的時候,SQL2的效率更高。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章