
在線客服
24小時免費咨詢電話:0335-3043400
客服時間: 上午8:30點-下午5:00點
客服時間: 上午8:30點-下午5:00點

MySQL 百萬數據分頁優化
2012年12月02日 TAG: MySQL分頁優化
以下分享一點我的經驗
一般剛開始學SQL的時候,會這樣寫
SELECT * FROM table ORDER BY id LIMIT 1000, 10;
但在數據達到百萬的時候,這樣寫會慢死
SELECT * FROM table ORDER BY id LIMIT 1000000, 10;
也許耗費幾十秒
網上很多優化的方法是這樣的
SELECT * FROM table WHERE id >= (SELECT id FROM table LIMIT 1000000, 1) LIMIT 10;
是的,速度提升到0.x秒了,看樣子還行了
可是,還不是完善的!
以下這句才是完善的!
SELECT * FROM table WHERE id BETWEEN 1000000 AND 1000010;
比上面那句,還要再快5至10倍
另外,如果需要查詢 id 不是連續的一段,完善的方法就是先找出 id ,然后用 in 查詢
SELECT * FROM table WHERE id IN(10000, 100000, 1000000...);
再分享一點
查詢字段一較長字符串的時候,表設計時要為該字段多加一個字段,如,存儲網址的字段
查詢的時候,不要直接查詢字符串,效率低下,應該查詭該字串的crc32或md5