回答
你的意思是排序或索引?無論您使用的是哪種數據庫技術,您通常可以在任何列或不同列的組合上應用索引。這允許數據庫引擎優化查詢執行並制定更好的執行計劃。在某種程度上,索引是針對數據庫引擎的「排序」。
實際的排序(如在ORDER BY MyColumn ASC|DESC
中)實際上僅在查詢數據庫的上下文中相關。您如何決定對查詢結果進行排序通常取決於您打算如何使用數據。
我的意思是最適合普通情況 – azat 2011-03-29 12:22:45
@azat:你使用的是哪種數據庫技術? – 2011-03-29 12:26:46
一個非常常見的情況是,您真的只需要基於ID的數據庫中的特定行。如果您的數據庫在數據庫的ID列上有一個索引,那麼您的查詢將會很快。排序(ORDER BY)是無關緊要的。 – 2011-03-29 12:29:19
我假定您使用的是關係數據庫,如MySQL或PostgreSQL,而不是其中一個非SQL數據庫。
這意味着您正在使用SQL語言與數據庫進行交互,並且從數據庫獲取數據的方式是使用SQL SELECT語句。一般來說,你的表將有一個「key」屬性,這意味着每行對該屬性都有唯一的值,通常數據庫將存儲按該鍵預先排序的數據(通常在B樹數據結構中) 。
因此,當您執行查詢時,例如「SELECT firstname,lastname FROM employees;」,其中「employees」是具有少數屬性(例如「employee_id」,「firstname」,「lastname」,「home_address」等)的表,數據通常會被傳遞按照employee_id值的順序。
要以不同的順序排序數據,您可以在SELECT語句中使用SQL「ORDER_BY」子句。例如,如果您希望按「姓氏」對數據進行排序,則可以使用「SELECT firstname,lastname FROM employees ORDER_BY lastname;」之類的內容。
數據庫可以實現此查詢的一種方式是檢索所有數據,然後在將它傳遞給用戶之前對其進行排序。
此外,還可以爲表創建索引,以便數據庫可以爲屬性或屬性集找到具有特定值或值範圍的行。如果您向SELECT查詢添加了一個「WHERE」子句(顯着)減少了匹配行的數量,那麼數據庫可以使用索引來加速查詢處理,方法是先對行進行過濾,然後(如有必要)對它們進行排序。請注意,數據庫查詢優化的整個主題非常複雜,並且考慮了各種各樣的因素來嘗試和估計哪些可能的查詢實現替代方案會導致最快的實現。
- 1. 通過重複字段對mongodb數據庫中的數據進行排序
- 2. 通過Elasticsearch中的其他數據進行排序。可能嗎?
- 3. Android:對JSON進行排序通過進行其他調用獲取或拍攝的數據
- 4. 從數據庫中通過PHP對錶進行排序
- 5. 通過MySql對字母數字數據進行排序
- 6. 通過提取數據對DataTable中的行進行排序
- 7. Python:如何通過兩個字段對數組進行排序?
- 8. 如何通過PHP中的對象字段對對象數組進行排序?
- 9. 根據其中一個字段對元組進行排序
- 10. 通過GPS位置對數據庫查詢進行排序
- 11. 想要通過Desig id對數據排序進行排序,但徒勞
- 12. 通過scanf對數組進行排序
- 13. 如何通過其他字段進行排序比SurveyMonkey V3反應/散裝DATE_MODIFIED
- 14. 通過Yii2上的其他字段進行過濾RESTful API
- 15. 通過3個數組進行過濾以對數據進行排序
- 16. 如何通過jquery對字段集進行排序?
- 17. 如何通過嵌套對象字段進行排序?
- 18. 按對象中數字字段對數組進行排序
- 19. 通過調換相鄰數字對數字進行排序
- 20. 通過包含數字對字符串數組進行排序?
- 21. 獲取數據庫順序中的數據,而無需對其進行排序
- 22. 使用SQL對錶中的其他值進行計算字段的SUM排序
- 23. 通過jquery對字母和數字都進行排序的數組排序
- 24. 如何通過PHP中的多個字段對多維數組進行排序?
- 25. 通過計算字段對afterFind回調中的$ results數組進行排序?
- 26. 通過數據庫字段ID的運行SQL根據字段值
- 27. 對數據庫中的行進行排序Mysql
- 28. 根據字段對Json數據進行排序
- 29. 如何通過在lucene中爲null的字段進行排序?
- 30. 通過SQL在不在投影中的字段進行排序
最適合什麼?這取決於你想如何使用數據。 Id字段通常針對搜索/排序進行了優化(如果它被標記爲唯一鍵等) – carlsb3rg 2011-03-29 12:07:31
最適合速度和可用性,我可以爲其他字段添加索引 – azat 2011-03-29 12:20:32