3
Mysql如何通過內部實現進行排序?是否按多個列進行排序包括按約束順序指定的每個列多次掃描一次數據集?mysql如何通過內部實現進行排序?
Mysql如何通過內部實現進行排序?是否按多個列進行排序包括按約束順序指定的每個列多次掃描一次數據集?mysql如何通過內部實現進行排序?
這裏的描述:
http://dev.mysql.com/doc/refman/5.0/en/order-by-optimization.html
除非你有亂排列(BLOB
或TEXT
)或您SELECT
列表過大,這種算法:
讀取與
WHERE
子句匹配的行。對於每一行,記錄由排序鍵值和行位置組成的值的元組,以及查詢所需的列。
排序排序關鍵字值
元組檢索按排序順序的行,而是直接從排序的元組,而不是通過訪問表的第二時間讀取所需的列。
排序按多個列不需要掃描該數據集的兩倍,由於用於排序所需的所有數據可以在單個讀出取出。
請注意,MySQL
可以完全避免訂單,只需按順序讀取值,前提是您的索引最左邊的部分與您的ORDER BY
條件匹配。
「這取決於」。存在哪些索引? –