最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql大數(shù)據(jù)量分頁優(yōu)化過程

 更新時間:2026年03月19日 14:41:48   作者:保護我方胖虎  
這篇文章主要介紹了Mysql大數(shù)據(jù)量分頁優(yōu)化過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

MySQL分頁 (limit offset ,N)并不是跳過 offset 行,而是取 offset+N 行,然后返回放棄前 offset 行,返回 N 行,那當offset特別大的時候,效率就非常的低下。

比如 limit 9999990,10 則mysql 一共會查詢 9999990+10條數(shù)據(jù)(一千萬條)然后拋棄掉前邊的9999990條數(shù)據(jù),返回最后10條

優(yōu)化思路:

  • 控制返回的總頁數(shù)
  • 對超過特定閾值的頁數(shù)進行 SQL改寫。

未優(yōu)化時普通sql

SELECT count(id) FROM `alarm_base` 

SELECT * FROM alarm_base limit 9000000,25

優(yōu)化方式一、索引覆蓋+子查詢優(yōu)化

SELECT * FROM alarm_base WHERE id >=(SELECT id FROM alarm_base limit 9000000,1)

ORDER BY id limit 25

可能有小伙伴有疑問了,你子查詢不也得查900_0000+1條數(shù)據(jù)嗎?

確實是這樣,但查的僅僅只是900_0000+1條數(shù)據(jù)的Id,且Id還是主鍵

優(yōu)化方式二、起始位置重定義

# 前提 1:(默認ID自增生成、升序排列)
# id> (pageIndex-1)*pageSize

# 前提二 2:(記住上次查找結果的主鍵位置,但只能一頁一頁分,跳頁會有問題)
# 兩個前提滿足其一即可使用
# sql
SELECT * FROM alarm_base WHERE id>=2300316 limit 25

優(yōu)化方式三、利用延遲關聯(lián)或者子查詢

正例:先快速定位需要獲取的 id 段,然后再關聯(lián):
 SELECT t1.* FROM 表 as t1, (select id from 表 where 條件 LIMIT 100000,20 ) as t2 where t1.id=t2.id

改寫前:

改寫后:

優(yōu)化方式四、降級策略

?配置limit的偏移量和獲取數(shù)一個最大值,超過這個最大值,就返回空數(shù)據(jù)(超過這個值你已經不是在分頁了,而是在刷數(shù)據(jù)了,如果確認要找數(shù)據(jù),應該輸入合適條件來縮小范圍,而不是一頁一頁分頁。)

?這種降級邏輯在ES中也有體現(xiàn),當深分頁數(shù)據(jù)大于10000時會報錯。。。

?總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Sql查詢MySql數(shù)據(jù)庫中的表名和描述表中字段(列)信息

    Sql查詢MySql數(shù)據(jù)庫中的表名和描述表中字段(列)信息

    這篇文章主要介紹了Sql查詢獲取MySql數(shù)據(jù)庫中的表名和描述表中列名數(shù)據(jù)類型,長度,精度,是否可以為null,默認值,是否自增,是否是主鍵,列描述等列信息
    2017-12-12
  • 關于MySQL?B+樹索引與哈希索引詳解

    關于MySQL?B+樹索引與哈希索引詳解

    索引是一種特殊的數(shù)據(jù)庫結構,被設計用來快速查詢數(shù)據(jù)庫表中的特定記錄,下面這篇文章主要給大家介紹了關于MySQL?B+樹索引與哈希索引的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • MySQL基于索引的壓力測試的實現(xiàn)

    MySQL基于索引的壓力測試的實現(xiàn)

    本文主要介紹了MySQL基于索引的壓力測試的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • mysql5.7.20 安裝配置方法圖文教程(win10)

    mysql5.7.20 安裝配置方法圖文教程(win10)

    這篇文章主要為大家詳細介紹了win10下mysql5.7.20 安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • MySQL數(shù)據(jù)同步Elasticsearch的4種方案

    MySQL數(shù)據(jù)同步Elasticsearch的4種方案

    本文主要介紹了MySQL數(shù)據(jù)同步Elasticsearch的4種方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • openEuler?RPM方式安裝MySQL8的實現(xiàn)

    openEuler?RPM方式安裝MySQL8的實現(xiàn)

    本文主要介紹了openEuler?RPM方式安裝MySQL8的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • mysql 5.7.17 winx64安裝配置教程

    mysql 5.7.17 winx64安裝配置教程

    這篇文章主要為大家詳細介紹了mysql 5.7.17 winx64安裝配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • MySQL服務器權限與對象權限詳解

    MySQL服務器權限與對象權限詳解

    這篇文章主要介紹了MySQL服務器權限與對象權限,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • MySQL 4種導入數(shù)據(jù)的方法

    MySQL 4種導入數(shù)據(jù)的方法

    這篇文章主要介紹了MySQL 導入 導出數(shù)據(jù)的方法,文中講解非常詳細,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • MySQL分區(qū)表的具體使用

    MySQL分區(qū)表的具體使用

    MySQL分區(qū)表通過規(guī)則將數(shù)據(jù)分至不同物理存儲,提升管理與查詢效率,本文主要介紹了MySQL分區(qū)表的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2025-06-06

最新評論

井陉县| 自治县| 汉寿县| 鄂温| 平阳县| 祁连县| 营口市| 滦平县| 弥渡县| 达日县| 罗江县| 砚山县| 德阳市| 汶川县| 孟州市| 方正县| 松原市| 容城县| 衡水市| 阿图什市| 鲜城| 县级市| 获嘉县| 彩票| 察隅县| 于都县| 浑源县| 宁陕县| 舞钢市| 白朗县| 西丰县| 万宁市| 高雄市| 灌云县| 辽阳县| 巴东县| 石台县| 舟曲县| 沽源县| 客服| 大渡口区|