欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySql中深度分頁的問題處理

 更新時間:2024年05月07日 11:00:18   作者:天青色等煙雨z  
這篇文章主要介紹了MySql中深度分頁的問題處理,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

什么是深度分頁?

MySql深度分頁的問題,就是比如我們需要所查詢出的表數(shù)據量較大,需要進行查詢結果返回集的后面部分,所出現(xiàn)的性能問題。

比如說我們有一個一百萬數(shù)據量的表,我們分頁需要查詢99990,10,數(shù)據庫通常情況下會先掃描前99990條數(shù)據, 再進行分頁返回最后10條,這樣就會導致查詢接口性能變慢,隨著OFFSET值的增大,查詢性能會顯著下降。

這是因為MySQL需要掃描從第一條記錄到OFFSET指定的位置,然后返回LIMIT數(shù)量的結果,這在大數(shù)據集中會導致大量的磁盤I/O操作和較慢的查詢響應時間。

解決方案

1. 子查詢過濾主鍵ID

因為Mysql中主鍵ID數(shù)據聚集索引,所有的數(shù)據都存儲在該節(jié)點的葉子節(jié)點上,所以如果我們使用了ID過濾條件

MySQL就會跳過前面的索引,也就不會掃描前方的數(shù)據,進行一個高效的過濾查詢

其實這也就是利用InndeDB中主鍵索引的優(yōu)點,但是這有一個前提的咱們的主鍵ID必須是自增ID

SELECT * FROM table_name
2WHERE id >= (SELECT id FROM table_name ORDER BY some_column LIMIT 100000, 1)
3ORDER BY some_column LIMIT 10;

2. 基于子查詢進行優(yōu)化

SELECT a.* FROM table_name a inner join (
select
 id
from 
table_name
where name="**"
order by id 
limit 10000 10
) b on a.id=b.id

在InndeDB中,子查詢中name是索引的情況下是不需要回表的

當基于我們需要范圍ID中能快速找出我們所需要對應的數(shù)據,深度分頁帶來的性能問題也能游刃而解

且這種方式是返回的具體的ID集合,不僅快而且數(shù)據量也是我們指定

3. 倒序分頁

如果數(shù)據是按時間戳或其他遞增字段排序的,可以考慮倒序查詢

即先找出最大的ID,然后逐步往前查,這在某些場景下可以提高效率

總結

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

相關文章

  • Mysql合并結果接橫向拼接字段的實現(xiàn)步驟

    Mysql合并結果接橫向拼接字段的實現(xiàn)步驟

    這篇文章主要給大家介紹了關于Mysql合并結果接橫向拼接字段的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • 淺談MySQL安裝starting the server失敗的解決辦法

    淺談MySQL安裝starting the server失敗的解決辦法

    如果電腦是不是第一次安裝MySQL,一般會出現(xiàn)報錯情況,starting the server失敗,通常是因為上次安裝的該軟件未清除干凈,本文就詳細的介紹一下解決方法,感興趣的可以了解一下
    2021-09-09
  • MySQL做讀寫分離提高性能緩解數(shù)據庫壓力

    MySQL做讀寫分離提高性能緩解數(shù)據庫壓力

    這篇文章主要為大家介紹了MySQL做讀寫分離提高性能緩解數(shù)據庫壓力的技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • Mysql索引常見問題匯總

    Mysql索引常見問題匯總

    這篇文章主要介紹了Mysql索引常見問題匯總,幫助大家更好的理解和使用MySQL數(shù)據庫,感興趣的朋友可以了解下
    2020-10-10
  • 一文詳解如何在Mycat中配置多個Schema

    一文詳解如何在Mycat中配置多個Schema

    在分布式數(shù)據庫架構中,Mycat?作為一個中間件,提供了強大的數(shù)據分片和路由能力,本文將詳細介紹如何在?Mycat?中配置多個?Schema,以滿足不同業(yè)務模塊的數(shù)據隔離需求,希望對大家有所幫助
    2025-05-05
  • mysql中insert語句的5種用法簡單示例

    mysql中insert語句的5種用法簡單示例

    這篇文章主要給大家介紹了關于mysql中insert語句的5種用法的相關資料,insert into是mysql中最常用的插入語句,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-08-08
  • Mysql徹底解決中文亂碼問題的方案(Illegal mix of collations for operation)

    Mysql徹底解決中文亂碼問題的方案(Illegal mix of collations for operation)

    mysql數(shù)據庫和中文支持很不友好,經常見到“Illegal mix of collations for operation”錯誤,該如何解決呢?下面小編給大家?guī)砹薽ysql數(shù)據庫中涉及到哪些字符集及徹底解決中文亂碼的解決方案,非常不錯,一起看看吧
    2016-08-08
  • 綠色版mysql注冊卸載服務方法

    綠色版mysql注冊卸載服務方法

    如果直接用綠色版的mysql,則下載后解壓,只需對目錄下的my.ini文件的basedir(mysql的基本目錄)和datadir(mysql數(shù)據目錄)指定就可以,如下所示。
    2013-06-06
  • 如何提高MySQL Limit查詢性能的方法詳解

    如何提高MySQL Limit查詢性能的方法詳解

    今天小編就為大家分享一篇關于如何提高MySQL Limit查詢性能的方法詳解,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • MySQL創(chuàng)建用戶與授權方法

    MySQL創(chuàng)建用戶與授權方法

    MySQL中創(chuàng)建用戶與授權的實現(xiàn)方法,對于剛開始接觸mysql的朋友可以參考下
    2012-11-11

最新評論