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

MySQL查詢中LIMIT的大offset導致性能低下淺析

 更新時間:2018年12月05日 09:07:25   作者:craneyuan  
這篇文章主要給大家介紹了關于MySQL查詢中LIMIT的大offset導致性能低下的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

我們大家都知道,mysql查詢使用select命令,配合limit,offset參數可以讀取指定范圍的記錄,但是offset過大影響查詢性能的原因及優(yōu)化方法

我們在業(yè)務系統(tǒng)中難免少不了分頁的需求。想到分頁的時候,大家肯定會想到使用SQL中的LIMIT來實現。但是,如果不正確的使用LIMIT會導致性能問題(SQL執(zhí)行得很慢、有可能會拖垮服務器),也會被領導批的;所以,我們來看看如何正確地使用LIMIT。

下面話不多說了,來一起看看詳細的介紹吧

LIMIT OFFSET, ROW_COUNT 實現分頁

存在性能問題的方式

SELECT * FROM myTable ORDER BY `id` LIMIT 1000000, 30 

寫出這樣SQL語句的人肯定心里是這樣想的:MySQL數據庫會直接定位到符合條件的第1000000位,然后再取30條數據。
然而,實際上MySQL不是這樣工作的。

LIMIT 1000000, 30 的意思是:掃描滿足條件的1000030行,扔掉前面的1000000行,然后返回最后的30行。

較好的方式

SELECT t.*
FROM (
  SELECT id
  FROM myTable
  ORDER BY
    id
  LIMIT 1000000, 30
  ) q
JOIN myTable t
ON  t.id = q.id

大概的原理是:

  • 子查詢只用到了索引列,沒有取實際的數據,所以不涉及到磁盤IO,所以即使是比較大的 offset,查詢速度也不會太差。

對具體的原理分析感興趣的朋友可以看看這篇文章:MySQL ORDER BY / LIMIT performance: late row lookups

后記

未完待續(xù)。

參考資料

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • 解決mysql連接錯誤errorCode 0,state 08S01

    解決mysql連接錯誤errorCode 0,state 08S01

    這篇文章主要介紹了解決mysql連接錯誤errorCode 0,state 08S01,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 在MySQL數據庫之間實現數據同步的配置步驟

    在MySQL數據庫之間實現數據同步的配置步驟

    本文介紹了六種常見的MySQL數據同步方法,包括主從復制、雙主復制、群集復制、使用第三方工具(如PerconaXtraBackup)和使用MySQLWorkbench進行數據同步,以及編寫自定義腳本進行數據同步,每種方法都有其優(yōu)缺點,需根據實際需求選擇,感興趣的朋友一起看看吧
    2025-02-02
  • MySQL數據庫故障處理全流程總結

    MySQL數據庫故障處理全流程總結

    這篇文章主要介紹了MySQL數據庫故障處理的相關資料,文中通過代碼詳細分析了.cnf配置、ibtmp文件膨脹及binlog文件管理不當導致MySQL服務卡死、無法連接等問題,需要的朋友可以參考下
    2026-06-06
  • windows 環(huán)境下 MySQL 8.0.13 免安裝版配置教程

    windows 環(huán)境下 MySQL 8.0.13 免安裝版配置教程

    這篇文章主要介紹了windows 環(huán)境下 MySQL 8.0.13 免安裝版配置教程,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-12-12
  • SQL通用語法以及分類圖文詳解

    SQL通用語法以及分類圖文詳解

    本書從初學者的角度出發(fā),由淺入深,循序漸進地介紹了SQL通用語法的相關知識,下面這篇文章主要給大家介紹了關于SQL通用語法以及分類的相關資料,需要的朋友可以參考下
    2022-12-12
  • MySQL的JDBC編程詳解

    MySQL的JDBC編程詳解

    這篇文章主要介紹了MySQL的JDBC編程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-09-09
  • mysql服務性能優(yōu)化—my.cnf_my.ini配置說明詳解(16G內存)

    mysql服務性能優(yōu)化—my.cnf_my.ini配置說明詳解(16G內存)

    這篇文章主要介紹了mysql服務性能優(yōu)化—my.cnf_my.ini配置說明詳解(16G內存),需要的朋友可以參考下
    2016-05-05
  • MySQL 全文檢索的使用示例

    MySQL 全文檢索的使用示例

    全文檢索是指計算機索引程序通過掃描文章中的每一個詞,對每一個詞建立一個索引,指明該詞在文章中出現的次數和位置,當用戶查詢時,檢索程序就根據事先建立的索引進行查找,并將查找的結果反饋給用戶的檢索方式。這個過程類似于通過字典中的檢索字表查字的過程。
    2021-06-06
  • MySQL緩存的查詢和清除命令詳細操作指南

    MySQL緩存的查詢和清除命令詳細操作指南

    MySQL緩存機制是提升數據庫查詢性能的關鍵技術,本文深入介紹了MySQL的查詢緩存、表緩存和InnoDB緩沖池等緩存類型,以及它們的查詢和清除命令,需要的朋友可以參考下
    2024-09-09
  • MySQL中使用自定義變量 編寫偷懶的UNION示例

    MySQL中使用自定義變量 編寫偷懶的UNION示例

    以下是對MySQL中使用自定義變量,編寫一個UNION的示例進行了詳細的介紹,需要的朋友可以過來參考下
    2013-07-07

最新評論

田东县| 岐山县| 宜都市| 凉城县| 抚远县| 隆安县| 郯城县| 峡江县| 临安市| 武川县| 克拉玛依市| 浦江县| 吉水县| 司法| 浏阳市| 荃湾区| 乐亭县| 牟定县| 子洲县| 宜兰县| 江孜县| 从江县| 云安县| 绥芬河市| 唐海县| 鹤山市| 淅川县| 公主岭市| 丰宁| 抚顺县| 县级市| 佛冈县| 临潭县| 海丰县| 波密县| 霞浦县| 循化| 乡城县| 金溪县| 揭东县| 通海县|