limit偏移量越大,查詢越慢的實驗

常見分頁查詢,越到後面越慢,這是由於offset造成的,offset越大,查詢越慢,因爲所以加載的頁越多,掃描也就越費時。

實驗:

sbtest1表,100w數據量,主鍵id,輔助非唯一索引k_1
select id from sbtest.sbtest1 where id>="200000" order by id limit 100000,10;
limit偏移量越大,查詢越慢的實驗
select id from sbtest.sbtest1 where id>="200000" order by id limit 700000,10;
limit偏移量越大,查詢越慢的實驗
兩條語句的執行計劃是一樣的,都是使用主鍵索引,但執行時間越差了0.76秒

但是通過Innodb_buffer_page查看,索引使用的頁情況
Offset 100000時,主鍵加載了3720個頁
limit偏移量越大,查詢越慢的實驗
Offset700000時,主鍵加載了10971個頁
limit偏移量越大,查詢越慢的實驗
也就是說,offset越大,索引掃描頁越多,所以導致變慢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章