Sql-Server
在 where 查詢中排序條件是否有意義?
我們在表 Tbl 中有一個聚集索引,其順序為 A、B、C。編寫查詢是否有意義
WHERE A = @a, B = @b, C = @c
或者它會和
WHERE C = @c, B = @b, A = @a
查詢順序對聚集索引有意義嗎?
沒有區別:優化器評估查詢並為自己計算謂詞順序,匹配合適的索引和它所做的所有其他好東西。
這是因為 SQL 是“聲明性的”而不是“程序性的”:你說你想要什麼,而不是如何去做。
雖然讀起來更好…
實際上,當我們使用 where 子句時,sql 會為每個 where 子句創建單獨的頁面。然後它基於 AND , OR 進行連接,然後產生輸出。所以,這里切換 where 子句不是問題。