關於order by
的查詢優化可以看一下:
主要介紹了兩個方法:
- 第一個是
FORCE INDEX (PRIMARY)
:這個理解很直白就是強行加索引 - 第二個是late row lookups,也就是文章的重點,其實就是先構造一個只有id的子查詢,然后再
join
一起。這樣極大的提高效率。如下示例代碼,o
是通過你的表和只有id查詢出來的臨時字表,l
是要join一起包含所有字段的表。explain
SELECT xx,xxx,.... FROM ( SELECT id FROM <你的表> ORDER BY id LIMIT <返回條數的范圍> ) o JOIN <你的表> l ON l.id = o.id ORDER BY l.id