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

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

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

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

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

優(yōu)化思路:

  • 控制返回的總頁(yè)數(shù)
  • 對(duì)超過(guò)特定閾值的頁(yè)數(shù)進(jìn)行 SQL改寫(xiě)。

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

SELECT count(id) FROM `alarm_base` 

SELECT * FROM alarm_base limit 9000000,25

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

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

ORDER BY id limit 25

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

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

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

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

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

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

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

改寫(xiě)前:

改寫(xiě)后:

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

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

?這種降級(jí)邏輯在ES中也有體現(xiàn),當(dāng)深分頁(yè)數(shù)據(jù)大于10000時(shí)會(huì)報(bào)錯(cuò)。。。

?總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

    關(guān)于MySQL?B+樹(shù)索引與哈希索引詳解

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

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

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

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

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

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

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

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

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

    mysql 5.7.17 winx64安裝配置教程

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

    MySQL服務(wù)器權(quán)限與對(duì)象權(quán)限詳解

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

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

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

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

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

最新評(píng)論

永州市| 周口市| 中超| 云和县| 宝应县| 关岭| 龙川县| 武城县| 德庆县| 新龙县| 砀山县| 蕉岭县| 兴城市| 内乡县| 从化市| 志丹县| 静乐县| 绍兴县| 濮阳县| 梓潼县| 广河县| 和田市| 揭阳市| 保康县| 平顶山市| 始兴县| 竹山县| 沾化县| 井冈山市| 盈江县| 平武县| 青冈县| 玉龙| 衡南县| 五大连池市| 武安市| 汝南县| 北川| 犍为县| 新竹县| 来凤县|