MySQL大數據量快速分頁實現
阿新 • • 發佈:2019-02-23
article 設計時 sql 存儲 百萬 tps 開始 需要 字符
---------------------
作者:Jef冒牌紳士
來源:CSDN
原文:https://blog.csdn.net/longjef/article/details/53929394
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
以下分享一點我的經驗
一般剛開始學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
作者:Jef冒牌紳士
來源:CSDN
原文:https://blog.csdn.net/longjef/article/details/53929394
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
MySQL大數據量快速分頁實現