亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中怎么實現百萬級數據量分頁查詢

發布時間:2021-07-13 15:21:43 來源:億速云 閱讀:510 作者:Leah 欄目:大數據

這期內容當中小編將會給大家帶來有關MySQL中怎么實現百萬級數據量分頁查詢,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

方法一:直接使用數據庫提供的SQL語句

語句樣式:MySQL中可用如下方法:

select * from table_name limit m, n;

適用場景:適用于數據量較少的情況(元組百/千級)

原因/缺點: 全表掃描,速度會很慢 且 有的數據庫結果集返回不穩定(如某次返回1,2,3,另外的一次返回2,1,3). limit限制的是從結果集的 m 位置處取出 n 條輸出,其余拋棄.

方法二:建立主鍵或唯一索引,利用索引(假設每頁10條)

語句樣式: MySQL中,可用如下方法:

select * from table_name where id_pk > (pageNum*10) limit m;

適應場景: 適用于數據量多的情況(元組數上萬)

原因: 索引掃描,速度會很快. 有朋友提出: 因為數據查詢出來并不是按照pk_id排序的,所以會有漏掉數據的情況,只能方法3

方法三:基于索引再排序

語句樣式,MySQL中可用如下方法:

select * from table_name where id_pk > (pageNum * 10) order by id_pk asc limit m;

適應場景: 適用于數據量多的情況(元組數上萬). 最好 order by 后的列對象是主鍵或唯一所以,使得 order by 操作能利用索引被消除但結果集是穩定的(穩定的含義,參見方法1)

原因: 索引掃描,速度會很快. 但MySQL的排序操作,只有 asc 沒有 desc ( desc 是假的,未來會做真正的 desc ,期待…).

方法四:基于索引使用prepare

第一個問號表示pageNum,第二個問號表示每頁元組數

語句樣式,MySQL中可用如下方法:

prepare stmt_name from select * from table_name where id_pk > (? * ?) order by id_pk asc limit m;

適應場景: 大數據量

原因: 索引掃描,速度會很快. prepare語句又比一般的查詢語句快一點。

方法五:利用MySQL支持order操作可以利用索引快速定位部分元祖,避免全表掃描

比如:讀第1000到1019行元組(pk是主鍵/唯一鍵).

select * from your_table where pa >= 1000 order by pk asc limit 0,20;

方法六:利用"子查詢/連接+索引"快速定位元祖的位置,然后再讀取元祖。

比如(id是主鍵/唯一鍵,藍色字體時變量)

利用子查詢示例:

select * from your_table where id <= (select id from your_table order by id desc limit ($page - 1) * $pagesize order by id desc limit $pagesize)

利用連接示例:

select * from your_table as t1join (select id from your_table order by id desc limit ($page - 1) * $pagesize as t2 where t1.id <= t2.id order by t1.id desc limit $pagesize);

mysql大數據量使用limit分頁,隨著頁碼的增大,查詢效率越低下。

上述就是小編為大家分享的MySQL中怎么實現百萬級數據量分頁查詢了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平安县| 周口市| 万全县| 贵州省| 晋江市| 铜梁县| 汝城县| 福安市| 广东省| 喀喇沁旗| 镇沅| 马关县| 通河县| 于田县| 峡江县| 永寿县| 厦门市| 泸定县| 屏东县| 黄山市| 安远县| 新邵县| 兴业县| 苗栗县| 富川| 南汇区| 常州市| 绵阳市| 嘉黎县| 海城市| 利辛县| 周宁县| 通河县| 观塘区| 和平区| 三原县| 江口县| 浦东新区| 新河县| 柳江县| 娄烦县|