你知道mysql的索引下推么?

在此之前,需要先明白mysql內部的一個大致結構,mysql內部大概是劃分為3處,client客戶端連接,server層,存儲引擎層

索引下推是mysql5.6之后內部的一種索引優化手段。

比如現在我有一張表student表,字段有id,name,age,note等等字段,然后我現在對name和age建立了一個組合索引,然后我現在執行一條語句:

select * from student where name like '周%' and age > 25;

我們知道此時這個組合索引是一個輔助索引樹結構,說到輔助索引肯定就聯想到回表,但是輔助索引會不會回表,取決于是否是覆蓋索引。很明顯,現在是*,查詢所有字段,不是覆蓋索引,那么就一定會回表,那么在mysql5.6,沒有索引下推的時候,是以下這樣執行的:

?盡管建立了聯合索引,但是Mysql5.6之前在儲存引擎層的時候,還是只會通過輔助索引樹的葉子結點找到name是為姓周的,而age是不管的(Mysql5.6的時候會管),然后再通過葉子結點上索引對應的主鍵ID回表主鍵索引樹,找到主鍵對應的行記錄,然后再把周的那些行記錄返回給Mysql的Server層,Mysql服務層再此層再篩選出age大于25的行記錄,再把結果返回給客戶端。那么此時如果姓周的結果是有100人,那么此時就需要回表100次,然后Mysql服務層再篩選出符合age > 25的記錄給客戶端。那么能不能就一次性在輔助索引樹上就把姓周并且age> 25的篩選出來,那么這樣的話就可以只回表一次,然后直接將最終結果返回給Mysql的Server層既可。這樣就可以大大減少回表次數了。

所以在Mysql5.6之后,Mysql內部對此進行了優化也就是索引下推

由于建立了聯合索引,那么通過輔助索引樹的葉子節點找到name是姓周的,同時會把age > 25的也篩選出來,然后最終滿足的記錄比如是2條,再回表2次查詢主鍵索引樹,然后把2條結果返回給Mysql的Server層,Mysql的Server層再直接把數據返回給客戶端大大減少了回表次數。

沒有使用索引下推,回表次數多,Mysql的Server層需要篩選記錄。

使用索引下推,回表次數少,Mysql的Server層不需要篩選記錄,直接返回給客戶端。

總結:

? ? ? ? 索引下推是Mysql5.6之前在數據庫內部為了減少回表次數而優化的一個點。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/83910.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/83910.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/83910.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql的基礎命令

1.SQL的基本概念 SQL 是用于管理和操作關系型數據庫的標準編程語言。是所有關系型數據庫(如 MySQL、PostgreSQL、Oracle 等)的通用語言。 SQL語句分類 DDL: Data Defination Language 數據定義語言 CREATE,DROP,ALTER DML: Da…

Python爬蟲實戰:研究加密參數的定位方法,實現逆向解密

一、引言 在數字化信息時代,網絡數據成為重要的戰略資源。Python 以其簡潔的語法和豐富的庫生態,成為網絡爬蟲開發的首選語言。然而,隨著互聯網安全防護意識的增強,網站普遍采用加密技術保護數據接口,如請求參數加密、會話驗證、動態令牌等,這使得傳統爬蟲技術面臨巨大挑…

軸承表面缺陷檢測數據集VOC+YOLO格式3945張3類別

數據集格式:Pascal VOC格式YOLO格式(不包含分割路徑的txt文件,僅僅包含jpg圖片以及對應的VOC格式xml文件和yolo格式txt文件) 圖片數量(jpg文件個數):3945 標注數量(xml文件個數):3945 標注數量(txt文件個數):3945 標注…

【51單片機中斷】

目錄 配置流程 1.在IE寄存器中開啟總中斷通道和需要的某中斷通道 2.在TCON寄存器開啟所用中斷的觸發方式 3.使用中斷函數完成中斷 4.若需要中斷嵌套則在IP寄存器中配置 5.若需要使用串口的中斷,則配置SCON寄存器 6.代碼示例 配置流程 1.在IE寄存器中開啟總…

【機器學習】Anaconda安裝后打不開jupyter notebook(網頁不自動跳出)

文章目錄 一、遇到的問題:jupyter notebook網頁不自動跳出(一)輸入jupyter notebook命令(二)手動打開網頁 二、解決辦法:指定瀏覽器(一)找文件 jupyter_notebook_config.py&#xff…

數字格式化庫 accounting.js的使用說明

accounting.js 是一個用于格式化數字、貨幣和金額的輕量級庫,特別適合財務和會計應用。以下是其詳細使用說明: 安裝與引入 通過 npm 安裝: bash 復制 下載 npm install accounting 引入: javascript 復制 下載 const accounting …

DeepSpeed簡介及加速模型訓練

DeepSpeed是由微軟開發的開源深度學習優化框架,專注于大規模模型的高效訓練與推理。其核心目標是通過系統級優化技術降低顯存占用、提升計算效率,并支持千億級參數的模型訓練。 官網鏈接:deepspeed 訓練代碼下載:git代碼 一、De…

集星獺 | 重塑集成體驗:新版編排重構仿真電商訂單數據入庫

概要介紹 新版服務編排以可視化模式驅動電商訂單入庫流程升級,實現訂單、客戶、庫存、發票、發貨等環節的自動化處理。流程中通過循環節點、判斷邏輯與數據查詢的編排,完成了低代碼構建業務邏輯,極大提升訂單處理效率與業務響應速度。 背景…

AMO——下層RL與上層模仿相結合的自適應運動優化:讓人形行走操作(loco-manipulation)兼顧可行性和動力學約束

前言 自從去年24年Q4,我司「七月在線」側重具身智能的場景落地與定制開發之后 去年Q4,每個月都會進來新的具身需求今年Q1,則每周都會進來新的具身需求Q2的本月起,一周不止一個需求 特別是本周,幾乎每天都有國企、央企…

MATLAB中進行語音信號分析

在MATLAB中進行語音信號分析是一個涉及多個步驟的過程,包括時域和頻域分析、加窗、降噪濾波、端點檢測以及特征提取等。 1. 加載和預覽語音信號 首先,你需要加載一個語音信號文件。MATLAB支持多種音頻文件格式,如.wav。 [y, fs] audiorea…

JWT令牌驗證

一、JWT 驗證方式詳解 JWT(JSON Web Token)的驗證核心是確保令牌未被篡改且符合業務規則,主要分為以下步驟: 1. 令牌解析與基礎校驗 收到客戶端傳遞的 JWT 后,首先按 . 分割為三部分:Header、Payload、S…

一文講清python、anaconda的安裝以及pycharm創建工程

軟件下載 Pycharm下載地址: Other Versions - PyCharm anaconda下載地址: https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Windows-x86_64.exe 安裝步驟 一、 Python 解釋器的安裝步驟 安裝目錄介紹: 二、 Anaconda 安裝 2.1 安裝步…

Mac如何允許安裝任何來源軟件?

打開系統偏好設置-安全性與隱私,點擊右下角的解鎖按鈕,選擇允許從任何來源。 如果沒有這一選項,請到打開終端,輸入命令行:sudo spctl --master-disable, 輸入命令后回車,輸入電腦的開機密碼后回車。 返回“…

React Flow 中 Minimap 與 Controls 組件使用指南:交互式小地圖與視口控制定制(含代碼示例)

本文為《React Agent:從零開始構建 AI 智能體》專欄系列文章。 專欄地址:https://blog.csdn.net/suiyingy/category_12933485.html。項目地址:https://gitee.com/fgai/react-agent(含完整代碼示?例與實戰源)。完整介紹…

Windows Ubuntu 目錄映射關系

情況一:你是通過 WSL (Windows Subsystem for Linux) 安裝 Ubuntu 這是最常見的情況。如果你在 Microsoft Store 安裝了 “Ubuntu”,默認就是 WSL。 📁 目錄映射關系如下: 從 Ubuntu(WSL)訪問 Windows&…

雙指針法高效解決「移除元素」問題

雙指針法高效解決「移除元素」問題 雙指針法高效解決「移除元素」問題一、問題描述二、解法解析:雙指針法1. 核心思想2. 算法步驟3. 執行過程示例 三、關鍵點分析四、復雜度分析五、與其他解法的比較1. 快慢指針法2. 本解法的優勢 六、實際應用場景七、總結 雙指針法…

知識圖譜構架

目錄 知識圖譜構架 一、StanfordNLP 和 spaCy 工具介紹 (一)StanfordNLP 主要功能 使用示例 (二)spaCy 主要功能 使用示例 二、CRF 和 BERT 的基本原理和入門 (一)CRF(條件隨機場&…

激光三角測量標定與應用

文章目錄 1,介紹。2,技術原理3,類型。3.1,直射式3.2,斜射式3.3,兩種三角位移傳感器特性的比較 4,什么是光片?5,主要的算子。1,create_sheet_of_light_model2&…

高可用消息隊列實戰:AWS SQS 在分布式系統中的核心解決方案

引言:消息隊列的“不可替代性” 在微服務架構和分布式系統盛行的今天,消息隊列(Message Queue) 已成為解決系統解耦、流量削峰、異步處理等難題的核心組件。然而,傳統的自建消息隊列(如RabbitMQ、Kafka&am…

人工智能核心知識:AI Agent 的四種關鍵設計模式

人工智能核心知識:AI Agent 的四種關鍵設計模式 一、引言 在人工智能領域,AI Agent(人工智能代理)是實現智能行為和決策的核心實體。它能夠感知環境、做出決策并采取行動以完成特定任務。為了設計高效、靈活且適應性強的 AI Age…