亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL覆蓋索引與大分頁詳解

 更新時間:2025年07月05日 08:37:02   作者:言之。  
這篇文章主要介紹了MySQL覆蓋索引與大分頁,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

在這里插入圖片描述

核心知識點

覆蓋索引概念

查詢使用了索引,且返回的列在該索引中能全部找到。

例如,對于主鍵索引(聚集索引),能一次性獲取整行記錄;對于普通索引,若返回列包含在該索引及主鍵值中,也算覆蓋索引,否則可能需要回表查詢。

在這里插入圖片描述

覆蓋索引判斷方法

根據(jù)查詢條件所走的索引類型(聚集索引或二級索引),判斷返回列是否都在該索引中。如根據(jù)id查詢走聚集索引,返回所有列是覆蓋索引;根據(jù)name查詢走二級索引,若返回列只有id和name則是覆蓋索引,若包含未在該二級索引中的列(如gender)則不是覆蓋索引。

覆蓋索引性能優(yōu)勢

一次性查詢出所有數(shù)據(jù),相比回表查詢性能更高,所以在開發(fā)中應盡量避免使用“select *”,防止因返回列未創(chuàng)建索引而觸發(fā)回表查詢。

在這里插入圖片描述

覆蓋索引在MySQL超大分頁問題中的應用

在這里插入圖片描述

超大分頁問題

當表數(shù)據(jù)量很大時,使用limit進行分頁,越往后分頁效率越低。如查詢“limit 9000000, 10”,MySQL會排序前9000010條記錄,但僅取十條,900多萬條記錄的排序代價高導致性能低。

解決方法

使用覆蓋索引加子查詢優(yōu)化。先通過覆蓋索引分頁查詢獲取表中按id排序后的分頁id集合(操作id效率高,因id是覆蓋索引),再通過該id集合到原表做關(guān)聯(lián)查詢提升效率。 

在這里插入圖片描述

面試回答思路

  • 覆蓋索引定義解釋:覆蓋索引指查詢使用索引且返回列都在索引中能找到,如根據(jù)id查詢走聚集索引可一次獲取所有數(shù)據(jù)。
  • 開發(fā)中的注意事項:避免使用“select *”,防止因返回列未建索引觸發(fā)回表查詢影響性能。
  • 超大分頁問題闡述:說明表數(shù)據(jù)量大時用limit分頁,越往后效率越低,如“limit 9000000, 10”的查詢,MySQL會排序大量記錄但僅取少量,導致性能低。
  • 解決方案說明:用覆蓋索引加子查詢優(yōu)化,先分頁查詢按id排序獲取id集合,再用id集合關(guān)聯(lián)原表查詢提升效率。

總結(jié)

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

相關(guān)文章

  • MySQL?字符串日期格式轉(zhuǎn)換的幾種方法

    MySQL?字符串日期格式轉(zhuǎn)換的幾種方法

    MySQL經(jīng)常需要將字符串類型的日期轉(zhuǎn)換成日期或時間類型,本文主要介紹了MySQL?字符串日期格式轉(zhuǎn)換的幾種方法,包括使用STR_TO_DATE()和DATE_FORMAT()函數(shù),具有一定的參考價值,感興趣的可以了解一下
    2024-08-08
  • MySQL無法啟動1067錯誤的又一種解決方法(機房斷電)

    MySQL無法啟動1067錯誤的又一種解決方法(機房斷電)

    今早在對一張table 創(chuàng)建primay key過程中發(fā)生了斷電,當電腦再次啟動時候,發(fā)現(xiàn)mysql 服務無法啟動,使用 net start 提示 1067錯誤,折騰了2個小時無法解決,后來只能通過手工刪除數(shù)據(jù)文件,日志文件,再啟動服務,然后導入數(shù)據(jù)來完成
    2013-01-01
  • MySQL深分頁問題及三種解決方案

    MySQL深分頁問題及三種解決方案

    本文主要介紹了MySQL深分頁問題及三種解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • MySQL 字符類型大小寫敏感

    MySQL 字符類型大小寫敏感

    這篇文章主要介紹了MySQL 字符類型大小寫敏感的相關(guān)資料,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-12-12
  • MySQL存儲過程中使用動態(tài)行轉(zhuǎn)列

    MySQL存儲過程中使用動態(tài)行轉(zhuǎn)列

    這篇文章主要為大家介紹了MySQL存儲過程中使用動態(tài)行轉(zhuǎn)列的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • MySQL 數(shù)據(jù)庫鎖的實現(xiàn)

    MySQL 數(shù)據(jù)庫鎖的實現(xiàn)

    本文主要介紹了MySQL 數(shù)據(jù)庫鎖的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • mysql條件查詢and or使用方法及優(yōu)先級實例分析

    mysql條件查詢and or使用方法及優(yōu)先級實例分析

    這篇文章主要介紹了mysql條件查詢and or使用方法及優(yōu)先級,結(jié)合實例形式分析了mysql條件查詢and or基本功能、用法及優(yōu)先級相關(guān)操作技巧,需要的朋友可以參考下
    2020-04-04
  • MySql通過ip地址進行訪問的方法

    MySql通過ip地址進行訪問的方法

    這篇文章主要介紹了MySql通過ip地址進行訪問的方法,首先要登錄mysql,切換數(shù)據(jù)庫然后授權(quán),具體代碼詳情大家參考下本文
    2018-06-06
  • MySQL主從數(shù)據(jù)庫搭建的實現(xiàn)

    MySQL主從數(shù)據(jù)庫搭建的實現(xiàn)

    本文主要介紹了MySQL8.0主從復制搭建步驟,包括配置文件修改、復制用戶權(quán)限設置、主庫狀態(tài)查詢、SSL證書生成及數(shù)據(jù)同步,具有一定的參考價值,感興趣的可以了解一下
    2025-06-06
  • SQL數(shù)據(jù)去重的3種方法實例詳解

    SQL數(shù)據(jù)去重的3種方法實例詳解

    SQL去重是數(shù)據(jù)分析工作中比較常見的一個場景,下面這篇文章主要給大家介紹了關(guān)于SQL數(shù)據(jù)去重的3種方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01

最新評論