現有兩表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的效率更高。