1. 程式人生 > >MySQL大數據量快速分頁實現

MySQL大數據量快速分頁實現

article 設計時 sql 存儲 百萬 tps 開始 需要 字符

以下分享一點我的經驗

一般剛開始學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大數據量快速分頁實現