mysql分頁查詢優化

普偏寫法:
select * from buyer where sellerid=100 limit 1000005000
造成查詢慢原因:

普通limitM,N的翻頁寫法,在越往後翻頁的過程中速度越慢,原因mysql會讀取表中的前M+N條數據,M越大,性能就越差。

優化寫法:
select t1.* from buyer t1,
(select id from buyer sellerid=100 limit 1000005000) t2
where t1.id=t2.id;
這樣查詢比較快的原理:

因爲這樣你看關聯第二張表,只是select id ,id是主鍵那麼索引速度是哪不是槓槓的,因此再關聯查詢出來的數據能不快嗎?

注意 :需要在t表的sellerid字段上創建索引,id爲表的主鍵
create index ind_sellerid on buyer(sellerid);

發佈了98 篇原創文章 · 獲贊 35 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章