MySQL的排序,有兩種方式:
Using filesort : 通過表的索引或全表掃描,讀取滿足條件的數(shù)據(jù)行,然后在排序緩沖區(qū)sort buffer中完成排序操作,所有不是通過索引直接返回排序結(jié)果的排序都叫 FileSort 排序。
Using index : 通過有序索引順序掃描直接返回有序數(shù)據(jù),這種情況即為 using index,不需要額外排序,操作效率高。
對于以上的兩種排序方式,Using index的性能高,而Using filesort的性能低,我們在優(yōu)化排序操作時(shí),盡量要優(yōu)化為 Using index。
接下來,我們來做一個(gè)測試:
找一張沒有建立索引的表
1 執(zhí)行排序SQL
explain select id,age,phone from tb_user order by age ;
explain select id,age,phone from tb_user order by age, phone ;
文章來源:http://www.zghlxwxcb.cn/news/detail-429245.html
由于 age, phone 都沒有索引,所以此時(shí)再排序時(shí),出現(xiàn)Using files文章來源地址http://www.zghlxwxcb.cn/news/detail-429245.html
到了這里,關(guān)于SQL優(yōu)化(3):order by優(yōu)化的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!