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

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

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

前言

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

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

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

LIMIT OFFSET, ROW_COUNT 實現(xiàn)分頁

存在性能問題的方式

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

寫出這樣SQL語句的人肯定心里是這樣想的:MySQL數(shù)據(jù)庫會直接定位到符合條件的第1000000位,然后再取30條數(shù)據(jù)。
然而,實際上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

大概的原理是:

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

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

后記

未完待續(xù)。

參考資料

總結

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

相關文章

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

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

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

    在MySQL數(shù)據(jù)庫之間實現(xiàn)數(shù)據(jù)同步的配置步驟

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

    MySQL數(shù)據(jù)庫故障處理全流程總結

    這篇文章主要介紹了MySQL數(shù)據(jù)庫故障處理的相關資料,文中通過代碼詳細分析了.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內(nèi)存)

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

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

    MySQL 全文檢索的使用示例

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

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

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

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

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

最新評論

鸡泽县| 银川市| 海南省| 巴彦淖尔市| 赫章县| 巫山县| 县级市| 新郑市| 新龙县| 沾化县| 蒙山县| 惠安县| 隆林| 故城县| 蓝田县| 贺州市| 丹阳市| 堆龙德庆县| 甘德县| 民勤县| 开阳县| 尚志市| 渝北区| 方山县| 通城县| 鸡东县| 璧山县| 图木舒克市| 祥云县| 黄梅县| 阿坝县| 彰化市| 正镶白旗| 穆棱市| 梁山县| 乐山市| 伊宁市| 喀喇沁旗| 河南省| 鹤峰县| 铜梁县|