今天看到一篇文章講的就是mysql數據有100萬的時候,分頁的時候,查詢非常慢,針對這個問題講優化方案
實驗准備
這裡我准備了1000萬數據的一張表,進行測試
默認分頁情況下
select id,username,age,word from demo limit 101,10;
select id,username,age,word from demo limit 100001,10;
對比上面的查詢可以看到,limit的數據越往後查詢花費的時間就越長
上面的對比不明顯,那麼我們下面查詢的大點的數據
select id,username,age,word from demo limit 8000001,10;
這個時間是否有嚇到你,如果不優化,分分鐘你的網站就會崩掉
解決方法
看一下單查id的執行時間
select id from demo limit 8000001,1
把分頁的代碼修改成
select id,username,age,word from demo where id>(select id from demo limit 8000001,1) limit 10;
sql的執行效率提升了一半,已經提升很大