我剛剛在ORDER語句中遇到了大約5個不同列的SQL查詢,這是一種很好的做法,它如何發揮性能?按批次排列的排序是否嚴重影響了性能?
1
A
回答
4
列數不是很重要。最重要的部分是,訂單是否匹配和索引,以及數據庫引擎是否能夠識別這些數據並正確使用索引。但是,當然有一些區別。主鍵通常比其他索引快得多,因爲其他索引之後需要進行主鍵查找,並且索引單個整數字段的效果要比索引字符串字段好得多。
關於如何構建數據庫,有幾種宗教信仰。通常,您可以通過使用整數作爲主鍵來儘量減少數據量,但企業中的許多大型數據庫在主鍵中使用多個字符串字段。這可能有幾個原因,但表現通常不是其中之一。
0
如果業務需求規定結果按五列進行排序,那麼假設至少有一個客戶端和一個服務器涉及到的唯一問題是在哪裏執行排序?
所以我猜想對良好實踐問題的任何答案都會有一個「取決於」的巨大劑量。
至於性能方面,如果要求進行排序,並且性能是個問題,那麼再次查看是否有可能從服務器上執行排序。
1
訂購5列或更多列不是良好實踐的問題,而是關於業務規則:您是否需要它。如果你必須排序,然後嘗試優化它。
一些常規步驟:
首先,檢查執行計劃目標數據庫。
如果性能至少「可以忍受」,那麼你就完成了。
否則:
- 變化領域的數量在ORDER BY子句,看看它使執行計劃有什麼性能上的差異。它應該給你一些關於瓶頸的提示。
- 嘗試通過「適當」索引來提高性能。
- 檢查提示你的數據庫有 - 也許你可以讓查詢分析器做更好的方法。
相關問題
- 1. 數據庫中的列排序是否影響性能?
- 2. 聚集索引排序順序是否影響性能
- 3. 按文件列按批次排序
- 4. 根據嚴重性排序SharePoint列表
- 5. *選擇器是否嚴重影響性能?
- 6. 是否有可能影響'_'lambda參數的排序方式?
- 7. 何時可空列嚴重影響性能?
- 8. 按計算列排序時的性能
- 9. shuffle:排序的影響
- 10. 重新排序子層沒有影響
- 11. 按次序排列結果
- 12. 使用批次重新排列數字
- 13. 確定值是否嚴格按升序排列的鏈接列表函數
- 14. 按性能問題排序
- 15. mysql按性能排序
- 16. JavaScript排序按唯一性排列
- 17. Magento列表按屬性排序按屬性排序不值
- 18. SQL Server中是否有「按列排序」?
- 19. Linux上的ACL是否影響性能
- 20. 按屬性排序列表,但隨機排序的屬性
- 21. 是否縮小了Node.js的影響性能?
- 22. 閱讀外部過程錯誤流嚴重影響性能
- 23. 向HDFS寫入數據幀是否會影響其排序
- 24. 重新選擇是否返回按字母順序排列的屬性名稱?
- 25. 變量是否會影響性能?
- 26. 表大小是否影響INSERT性能?
- 27. 此javascript語句是否影響性能?
- 28. 事務範圍是否影響性能?
- 29. 構造函數是否影響性能?
- 30. 使用require()是否會影響性能?
+1順便說一下,您可能應該說在* clustered *索引上的排序是快速的。它並不總是聚集的主鍵索引。 – Andomar 2009-11-07 11:19:08