mysql 不用orderby 某些情況下會亂序

2022-10-09 21:21:28 字數 540 閱讀 2703

目前的直覺是,不傳條件,以id為索引,自然而然的順序得到結果; 傳了條件,則以index索引,當中tree get數set數的時候,順序沒***了。不能確定是不是正確。

mysql文件有說明

如果多行的order by列中有相同的值,伺服器可以按任意順序返回這些行,並且

根據總體執行計畫,可能會有不同的做法。換句話說,這些行的排序順序是

關於非有序列的不確定性。

如果重要的是確保有限制和無限制的行順序相同,請在order by子句中包含其他列

使訂單具有確定性。例如,如果id值是唯一的,則可以顯示給定類別值的行

按這樣的排序

MySQL如何優化ORDER BY

某些情況中,mysql可以使用乙個索引來滿足order by子句,而不需要額外的排序。即使order by不確切匹配索引,只要where子句中的所有未使用的索引部分和所有額外的order by 列為常數,就可以使用索引。下面的查詢使用索引來解決order by部分 某些情況中,mysql可以使用乙個...

MySQL 優化 ORDER BY 優化

本文翻譯自mysql 官網 order by optimization,mysql 版本 5.7。這一部分描述了mysql何時會使用索引來滿足order by子句,filesort 操作會在索引不能生效的時候被用到,以及優化器對order by的執行計畫資訊。order by後面有沒有跟著limit...

MySQL優化order by語句

優化order by語句 mysql的兩種排序方式 1.第一種就是通過有序索引順序掃瞄直接返回資料,常見的是使用explain分析查詢extra顯示using index,這種情況不需要額外的排序,高效率。2.通過返回資料進行排序,通常是使用explain分析查詢語句使用extra表示filesor...