普偏寫法:
select * from buyer where sellerid=100 limit 100000,5000
造成查詢慢原因:
普通limitM,N的翻頁寫法,在越往後翻頁的過程中速度越慢,原因mysql會讀取表中的前M+N條數據,M越大,性能就越差。
優化寫法:
select t1.* from buyer t1,
(select id from buyer sellerid=100 limit 100000,5000) t2
where t1.id=t2.id;
這樣查詢比較快的原理:
因爲這樣你看關聯第二張表,只是select id ,id是主鍵那麼索引速度是哪不是槓槓的,因此再關聯查詢出來的數據能不快嗎?
注意 :需要在t表的sellerid字段上創建索引,id爲表的主鍵
create index ind_sellerid on buyer(sellerid);