1
比方說,我有一個包含三列主鍵的表。如果我從該表中選擇所有,但沒有任何命令子句,據我瞭解,這些列按順序排列。第一個,第二個內部,第三個內部。依次使用主鍵的性能成本
是否有任何額外的成本,或者性能增益,通過顯式添加一個order by子句和三個按它們是主鍵一部分的列的順序?
比方說,我有一個包含三列主鍵的表。如果我從該表中選擇所有,但沒有任何命令子句,據我瞭解,這些列按順序排列。第一個,第二個內部,第三個內部。依次使用主鍵的性能成本
是否有任何額外的成本,或者性能增益,通過顯式添加一個order by子句和三個按它們是主鍵一部分的列的順序?
如果我選擇所有從該表中沒有任何ORDER BY子句他們,發生到我的理解,通過這些列
你的理解是不正確排序。如果沒有order by
,數據庫引擎可能會按照它選擇的任何順序輸出結果。事實上,如果您要在另一個字段中添加聚簇索引,它可能會改變結果的順序。
是否有任何額外的費用,或者性能增益
永遠不會有通過訂購(除非你正在做的事情effects branch prediction)性能增益。如果數據庫要這樣定購,將不會有任何成本。但是,如果您未指定訂單,則可能存在正確性問題。
Ahhh關於一些隱含規則的小內存似乎是在使用group by的時候,而且沒有明確的順序。 – inquam