国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySQL分頁查詢詳解:優(yōu)化大數(shù)據(jù)集的LIMIT和OFFSET

這篇具有很好參考價值的文章主要介紹了MySQL分頁查詢詳解:優(yōu)化大數(shù)據(jù)集的LIMIT和OFFSET。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

最近在工作中,我們遇到了一個需求,甲方要求直接從數(shù)據(jù)庫導(dǎo)出一個業(yè)務(wù)模塊中所有使用中的工單信息。為了實現(xiàn)這一目標(biāo),我編寫了一條SQL查詢語句,并請求DBA協(xié)助導(dǎo)出數(shù)據(jù)。盡管工單數(shù)量并不多,只有3000多條,但每個工單都包含了大量的信息。DBA進(jìn)行了多次導(dǎo)出操作,不幸的是,每次嘗試導(dǎo)出都導(dǎo)致了操作平臺的卡頓和無響應(yīng)。

為了克服這一問題,我們決定采用MySQL的分頁技術(shù),具體使用了LIMIT和OFFSET關(guān)鍵詞,將導(dǎo)出操作拆分成多個批次進(jìn)行。通常,我們在項目中使用一些開源插件如pagehelper等來實現(xiàn)頁面分頁,很少自己在sql中編寫分頁邏輯。但在這次需求中,我們不得不深入了解并使用了MySQL的分頁功能。

在本文中,我們將詳細(xì)探討MySQL中的LIMITOFFSET關(guān)鍵詞,以及如何通過性能優(yōu)化來處理分頁查詢,以滿足業(yè)務(wù)需求。

什么是分頁查詢?

分頁查詢是一種將大型數(shù)據(jù)集拆分成可管理塊的技術(shù),以便在用戶界面中逐頁顯示。這在Web應(yīng)用、移動應(yīng)用和報告生成中非常常見,它有助于提高性能并改善用戶體驗,因為不需要一次加載全部數(shù)據(jù)。

分頁關(guān)鍵字

LIMIT關(guān)鍵字

LIMIT關(guān)鍵字用于限制返回結(jié)果集中的行數(shù)。其基本語法如下:

SELECT * FROM 表名 LIMIT 行數(shù);

例如,要從名為mark_info的表中選擇最新創(chuàng)建的10個工單的信息,可以執(zhí)行以下查詢:

SELECT * FROM mark_info ORDER BY CREATE_TIME DESC  LIMIT 10;

OFFSET關(guān)鍵字

OFFSET關(guān)鍵字用于指定從結(jié)果集的哪一行開始返回數(shù)據(jù)。通常,它與LIMIT一起使用,以實現(xiàn)分頁效果。其語法如下:

SELECT * FROM 表名 LIMIT 行數(shù) OFFSET 偏移量;

或者

SELECT * FROM 表名 LIMIT 行數(shù) , 偏移量;

這兩寫法效果是一樣的。

例如,要從mark_info表中選擇選擇最新創(chuàng)建的第11到第20個工單的信息,可以執(zhí)行以下查

SELECT * FROM mark_info ORDER BY CREATE_TIME DESC  LIMIT 10 OFFSET 10;

或者

SELECT * FROM mark_info ORDER BY CREATE_TIME DESC  LIMIT 10 , 10;

分頁查詢的示例

假設(shè)我們有一個名為bus_work_order_operate_info的表,其中存儲了大量工單操作記錄。我們希望實現(xiàn)一個分頁功能,每頁顯示10個工單操作的信息。以下是如何執(zhí)行分頁查詢的示例:

-- 第一頁,顯示最新的10個工單操作信息
SELECT * FROM bus_work_order_operate_info ORDER BY OPERATE_TIME DESC LIMIT 10;

-- 第二頁,顯示接下來的10個工單操作信息
SELECT * FROM bus_work_order_operate_info ORDER BY OPERATE_TIME DESC LIMIT 10 OFFSET 10;

-- 第三頁,顯示接下來的10個工單操作信息
SELECT * FROM bus_work_order_operate_info ORDER BY OPERATE_TIME DESC LIMIT 10 OFFSET 20;

-- 以此類推...

性能優(yōu)化

我們在很多的實際應(yīng)用場景中,一般 limit 加上偏移量,加上order by 子句,配合合適的索引,效率通常不錯。但是當(dāng)偏移量非常大的時候,需要跳過大量的數(shù)據(jù),這樣會有很大的性能問題。以下是一個優(yōu)化的示例:

未優(yōu)化sql

SELECT * FROM bus_work_order_operate_info ORDER BY OPERATE_TIME DESC LIMIT 10 OFFSET 5000;

查詢分析

MySQL分頁查詢詳解:優(yōu)化大數(shù)據(jù)集的LIMIT和OFFSET,mysql,數(shù)據(jù)庫

優(yōu)化后sql

select T1.* from bus_work_order_operate_info T1  INNER JOIN (select ID FROM bus_work_order_operate_info ORDER BY OPERATE_TIME DESC LIMIT 10 OFFSET 5000  ) T2 ON T1.ID = T2.ID;

查詢分析

MySQL分頁查詢詳解:優(yōu)化大數(shù)據(jù)集的LIMIT和OFFSET,mysql,數(shù)據(jù)庫

通過查詢分析對比,優(yōu)化后的sql掃描的數(shù)據(jù)行數(shù)更少,查詢可能會更加高效,所以我們可以考慮用這種方式對大偏移量的limit 進(jìn)行優(yōu)化。

總結(jié)

MySQL的分頁查詢是處理大量數(shù)據(jù)集的常見需求,了解LIMITOFFSET關(guān)鍵字的用法可以幫助您有效地實現(xiàn)分頁功能。同時,性能優(yōu)化也是確保查詢高效執(zhí)行的關(guān)鍵。通過合理配置和結(jié)合其他優(yōu)化策略,您可以輕松應(yīng)對分頁查詢的挑戰(zhàn),提供更好的用戶體驗。文章來源地址http://www.zghlxwxcb.cn/news/detail-691265.html

到了這里,關(guān)于MySQL分頁查詢詳解:優(yōu)化大數(shù)據(jù)集的LIMIT和OFFSET的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Mybatis中l(wèi)imit用法與分頁查詢

    錯誤示范 錯誤示范一: 錯誤示范二: 這里先要了解一下: #{}和${}的區(qū)別: #{}表示一個占位符號,通過#{}可以實現(xiàn)preparedStatement向占位符中設(shè)置值,自動進(jìn)行java類型和jdbc類型轉(zhuǎn)換。#{}可以有效防止sql注入。 #{}可以接收簡單類型值或pojo屬性值。 如果parameterType傳輸單個簡單類

    2024年02月15日
    瀏覽(17)
  • 百萬數(shù)據(jù)分頁查詢優(yōu)化方案

    百萬數(shù)據(jù)分頁查詢優(yōu)化方案

    分頁問題 分頁列表查詢是項目中的熱點需求,這種需求的特點是:字段多、數(shù)據(jù)量大、訪問頻繁、使用率高的特點,這個功能是給用戶最直觀的展示系統(tǒng)的信息,針對于多、大、頻、熱這幾個特點,會引申出一個問題:列表展示的數(shù)據(jù)可能是來自于不同的數(shù)據(jù)維度、需要關(guān)聯(lián)

    2024年02月15日
    瀏覽(25)
  • oracle 大數(shù)據(jù)常見優(yōu)化 &分頁查詢

    oracle 大數(shù)據(jù)常見優(yōu)化 &分頁查詢

    參考某微信社區(qū)博主,此文為溫故知新;原參考博主賬號與鏈接已丟失 1.limit 語句樣式:select * from table limit m,n 適用場景:適用于數(shù)據(jù)量較少的情況(元組、百/千) 缺點:全表掃描,速度劣勢,有的數(shù)據(jù)庫結(jié)果集返回不穩(wěn)定。limit限制是從結(jié)果集的M位置處取出N條輸出,其余

    2024年02月05日
    瀏覽(32)
  • 千萬級數(shù)據(jù)深分頁查詢SQL性能優(yōu)化實踐

    如何在Mysql中實現(xiàn)上億數(shù)據(jù)的遍歷查詢?先來介紹一下系統(tǒng)主角:關(guān)注系統(tǒng),主要是維護(hù)京東用戶和業(yè)務(wù)對象之前的關(guān)注關(guān)系;并對外提供各種關(guān)系查詢,比如查詢用戶的關(guān)注商品或店鋪列表,查詢用戶是否關(guān)注了某個商品或店鋪等。但是最近接到了一個新需求,要求提供查

    2024年02月11日
    瀏覽(30)
  • 重構(gòu)優(yōu)化第三方查詢接口返回大數(shù)據(jù)量的分頁問題

    重構(gòu)優(yōu)化第三方查詢接口返回大數(shù)據(jù)量的分頁問題

    # 問題描述 ? ? ?用戶線上查詢其上網(wǎng)流量詳單數(shù)據(jù)加載慢,且有時候數(shù)據(jù)沒有響應(yīng)全~ ? ? ?1、經(jīng)排除是調(diào)用第三方數(shù)據(jù)量達(dá)10w條響應(yīng)會超時,數(shù)據(jù)沒正常返回 ? ? ?2、現(xiàn)有線上緩存分頁也是加載慢數(shù)據(jù)不能正常展示 ? ? ?3、第三方接口返回類似報文jsonj: ? ? ? ? ? 4、我

    2024年02月09日
    瀏覽(31)
  • mybatis-plus技巧--動態(tài)表名-多語句-拼接sql--關(guān)于mybatis的mysql分頁查詢總數(shù)的優(yōu)化思考

    mybatis-plus技巧--動態(tài)表名-多語句-拼接sql--關(guān)于mybatis的mysql分頁查詢總數(shù)的優(yōu)化思考

    傳入tableName參數(shù)就可以了,不過只能用$不能用# 因為#會發(fā)生預(yù)編譯,然后會在表名上加引號’\\\'。 新建一個表名攔截類實現(xiàn)TableNameHandler mybatisPlus添加插件 實例: 每天按統(tǒng)計 如果表名為count則加上今天的時間 每次設(shè)置 直接設(shè)置名字,然后就會改變的。 需要在配置文件中的

    2024年01月16日
    瀏覽(23)
  • mysql mybatis分頁查詢 大數(shù)據(jù)量 非常慢

    mysql mybatis分頁查詢 大數(shù)據(jù)量 非常慢

    ?查閱了很多博客和資料,這篇文章以思路為準(zhǔn),詳細(xì)代碼不細(xì)說,都是非常簡單的方法,一看就明白。具體實現(xiàn)稍微百度一下就能出來。僅供參考。 如題:單表數(shù)據(jù)已經(jīng)達(dá)到4千萬條數(shù)據(jù),通過mybatis的分頁查詢效率非常低下。 ??????? 當(dāng)然,前提是索引什么的優(yōu)化已經(jīng)都

    2024年01月19日
    瀏覽(21)
  • 【性能優(yōu)化】MySQL百萬數(shù)據(jù)深度分頁優(yōu)化思路分析

    【性能優(yōu)化】MySQL百萬數(shù)據(jù)深度分頁優(yōu)化思路分析

    ????????一般在項目開發(fā)中會有很多的統(tǒng)計數(shù)據(jù)需要進(jìn)行上報分析,一般在分析過后會在后臺展示出來給運營和產(chǎn)品進(jìn)行 分頁查看 , 最常見的一種就是根據(jù)日期進(jìn)行篩選 。這種統(tǒng)計數(shù)據(jù)隨著時間的推移數(shù)據(jù)量會慢慢的變大,達(dá)到百萬、千萬條數(shù)據(jù)只是時間問題。 一、數(shù)

    2024年02月15日
    瀏覽(24)
  • MySQL百萬數(shù)據(jù)深度分頁優(yōu)化思路分析

    一般在項目開發(fā)中會有很多的統(tǒng)計數(shù)據(jù)需要進(jìn)行上報分析,一般在分析過后會在后臺展示出來給運營和產(chǎn)品進(jìn)行 分頁查看 , 最常見的一種就是根據(jù)日期進(jìn)行篩選 。這種統(tǒng)計數(shù)據(jù)隨著時間的推移數(shù)據(jù)量會慢慢的變大,達(dá)到百萬、千萬條數(shù)據(jù)只是時間問題。 創(chuàng)建了一張user表,

    2024年02月03日
    瀏覽(23)
  • 【QT性能優(yōu)化】QT性能優(yōu)化之QT6框架高性能模型視圖代理框架千萬級數(shù)據(jù)表分頁查詢優(yōu)化

    【QT性能優(yōu)化】QT性能優(yōu)化之QT6框架高性能模型視圖代理框架千萬級數(shù)據(jù)表分頁查詢優(yōu)化

    QT性能優(yōu)化之QT6框架高性能模型視圖代理框架千萬級數(shù)據(jù)表分頁查詢優(yōu)化 簡介 本文介紹了QT模型視圖代理框架中的QT表格控件和QT數(shù)據(jù)庫模塊中的QT數(shù)據(jù)庫查詢模型結(jié)合使用的一個應(yīng)用實踐案例:QT高性能表格控件分頁展示千萬行數(shù)據(jù)。本文介紹了這個應(yīng)用實踐案例的運行效果

    2024年02月14日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包