SQL語句是數(shù)據(jù)庫資源消耗的主要來源,它往往都是可以進一步優(yōu)化的,SQL優(yōu)化在時間成本和風險上代價低。
我們寫的SQL語句都會被查詢優(yōu)化器自動優(yōu)化,它的優(yōu)化原則是這樣的:
1. 選擇運算優(yōu)先運行。(即優(yōu)先通過條件過濾記錄集)
2. 投影運算與選擇運算同時進行。
3. 將笛卡爾積與隨后的選擇運算合并為連接運算
4. 投影運算與其他運算同時進行
5. 尋找公共子表達式并將結果加以存儲
6. 對文件進行預處理
由于有了以上優(yōu)化,所以下面兩種SQL的寫法效率一樣
select * from A,B where A.id=B.id and A.name='Jake'
select * from A,B were A.name='Jake' and A.id=B.id
隨著數(shù)據(jù)庫的進化,原來效率低的語句現(xiàn)在不一定低,需要實際測試。