【MySQL精通之路】SQL優化(1)-查詢優化(11)-多范圍查詢優化

主博客:

【MySQL精通之路】SQL優化(1)-查詢優化-CSDN博客

上一篇:

【MySQL精通之路】SQL優化(1)-查詢優化(10)-外部聯接簡化-CSDN博客

下一篇:

當基表很大且未存儲在存儲引擎的緩存中時,使用輔助索引上的范圍掃描讀取行可能會導致對基表的多次隨機磁盤訪問。通過磁盤掃描多范圍讀取(MRR)優化,MySQL試圖通過首先僅掃描索引并收集相關行的key來減少范圍掃描的隨機磁盤訪問次數。然后對鍵進行排序,最后使用主鍵的順序從基表中檢索行。磁盤掃描MRR的動機是減少隨機磁盤訪問的次數,而不是實現對基表數據的更有序的掃描。

多范圍讀取優化提供了以下好處:

MRR使數據行能夠基于索引元組按順序訪問,而不是按隨機順序訪問。服務器獲取一組滿足查詢條件的索引元組,根據數據行ID順序對其進行排序,并使用排序后的元組按順序檢索數據行。這使得數據訪問更加高效且成本更低。

MRR允許批量處理需要通過索引元組訪問數據行的操作的密鑰訪問請求,例如范圍索引掃描和使用聯接屬性索引的等聯接。MRR對一系列索引范圍進行迭代,以獲得合格的索引元組。隨著這些結果的積累,它們被用來訪問相應的數據行。在開始讀取數據行之前,不必獲取所有索引元組。

在虛擬生成列上創建的輔助索引不支持MRR優化。InnoDB支持虛擬生成列的二級索引。

以下場景說明了MRR優化何時是有利的:

場景A:MRR可用于InnoDB和MyISAM表,用于索引范圍掃描和等聯接操作。

1.索引元組的一部分被累積在緩沖器中。

2.緩沖區中的元組按其數據行ID進行排序。

3.根據排序后的索引元組序列來訪問數據行。

場景B:MRR可用于NDB表,用于多個范圍索引掃描或按屬性執行等聯接。

1.一部分范圍,可能是單鍵范圍,被累積在提交查詢的中心節點上的緩沖區中。

2.范圍被發送到訪問數據行的執行節點。

3.訪問的行被打包到包中,并發送回中心節點。

4.接收到的具有數據行的包被放置在緩沖區中。

5.從緩沖區讀取數據行。

當使用MRR時,EXPLAIN輸出中的Extra列顯示Using MRR。

如果不需要訪問完整的表行來生成查詢結果,那么InnoDB和MyISAM不使用MRR。

如果結果可以完全基于索引元組中的信息(通過覆蓋索引)產生,則是這種情況;MRR沒有任何好處。

兩個優化器開關系統變量標志為MRR優化的使用提供了接口。mrr標志控制是否啟用mrr。如果啟用了mrr(啟用),則基于mrr_cost_based標志控制優化器是嘗試使用和不使用mrr(啟用)之間進行基于成本的選擇,還是盡可能使用mrr。

默認情況下,mrr處于啟用狀態,mrr_cost_based處于啟用狀態。

請參閱“可切換優化”。

對于MRR,存儲引擎使用read_rnd_buffer_size系統變量的值作為可以為其緩沖區分配多少內存的準則。

引擎最多使用read_rnd_buffer_size字節,并確定單次處理的范圍數

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

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

相關文章

uniappx 獲取設備唯一標識(OAID、AAID、AndroidID、IMEI等) Ba-IdCode-U

簡介(下載地址) Ba-IdCode-U 是一款可以獲取國內各大手機廠商 OAID(開放匿名設備標識)及海外手機平臺 AAID(安卓廣告標識)的uniapp插件。另外也支持獲取 IMEI/MEID、AndroidID、WidevineID、PseudoID、GUI…

Spring Cloud Alibaba-06-Sleuth鏈路追蹤

Lison <dreamlison163.com>, v1.0.0, 2024.4.03 Spring Cloud Alibaba-06-Sleuth鏈路追蹤 文章目錄 Spring Cloud Alibaba-06-Sleuth鏈路追蹤為什么使用鏈路追蹤常見鏈路追蹤解決方案Sleuth概述概述Sleuth術語 Sleuth Zipkin 原理Sleuth原理簡述Zipkin 原理簡述 Sleut…

Python庫之`lxml`的高級用法深度解析

Python庫之lxml的高級用法深度解析 簡介 lxml是一個功能強大的第三方庫&#xff0c;它提供了對XML和HTML文檔的高效處理能力。除了基本的解析和創建功能外&#xff0c;lxml還包含了一些高級用法&#xff0c;這些用法可以幫助開發者在處理復雜文檔時更加得心應手。 高級解析技…

代碼隨想錄——路徑總和(Leetcode113)需要回顧

題目鏈接 遞歸 本題遞歸需要遍歷整棵樹&#xff0c;所以遞歸沒有返回值 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* T…

蘋果M4性能分析:進步神速?還有多少空間?

2024年初&#xff0c;蘋果推出了M4處理器&#xff0c;令人意外的是&#xff0c;它的發布距離M3發布僅僅過去了半年時間。更讓人驚訝的是&#xff0c;M4首次亮相于iPad Pro。這一新處理器不僅僅是M3的簡單升級版本&#xff0c;而是一次全面的架構優化。本文將詳細分析M4處理器的…

Vue基礎(1)數據綁定

一. 文本插值 普通文本可以使用雙大括號 {{ }} &#xff0c;要想插入 HTML&#xff0c;需要使用 v-html 指令。 <template><h1>Message: {{ state.msg }}</h1><p>{{ state.count 1 }}</p><p>{{ state.rawHtml }}</p><p v-html…

【教學類-58-02】黑白三角拼圖02(3*3宮格)262144種

背景需求&#xff1a; 已知黑白三角拼圖2*2&#xff08;4個拼圖&#xff09;一共有256種排列方法 【教學類-58-01】黑白三角拼圖01&#xff08;2*2宮格&#xff09;256種-CSDN博客文章瀏覽閱讀142次&#xff0c;點贊5次&#xff0c;收藏12次。【教學類-58-01】黑白三角拼圖01…

深度學習之基于Matlab卷積神經網絡(CNN)手寫數字識別

歡迎大家點贊、收藏、關注、評論啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代碼。 文章目錄 一項目簡介 二、功能三、系統四. 總結 一項目簡介 一、項目背景與意義 手寫數字識別是計算機視覺領域的一個重要問題&#xff0c;也是深度學習應用的一個典型場景。卷…

什么是固態繼電器?

固態繼電器是不需要使用任何機械部件的開關繼電器。這通常使它們具有比普通機電繼電器壽命更長的優勢&#xff0c;然而&#xff0c;盡管固態繼電器速度快且耐用&#xff0c;但仍具有某些設計規定。 固態繼電器風靡全球&#xff0c;徹底改變了從農業自動化到航空航天等各個行業…

中國數學會發布數學期刊分級目錄

T1,T2,T3均是中國數學會的期刊分類 下載地址&#xff1a; 中國數學會發布數學期刊分級目錄-太原理工大學數學學院 (tyut.edu.cn)

銀行總部文件自動下發,如何保證不影響專線網絡使用?

銀行在我國金融體系中占據重要地位&#xff0c;是我國市場經濟的重要組成部分。我國商業銀行隨著自身不斷發展&#xff0c;規模日益擴大&#xff0c;形成了“總行-分行-支行-營業網點”的典型層級管理模式。在日常中&#xff0c;銀行總部存在文件下發的場景&#xff1a; 銀行總…

1.4 接入網和物理媒體

接入網絡和物理媒體 Q: 怎樣將端系統和邊緣路由器連接&#xff1f; 住宅接入網絡 單位接入網絡 &#xff08;學校、公司&#xff09; 無線接入網絡 注意&#xff1a; 接入網絡的帶寬 (bits persecond) &#xff1f; 共享/專用&#xff1f; 接入網: 這是指將端系統物理連接到其…

數學基礎 -- 條件概率、后驗概率與聯合概率

條件概率與后驗概率 技術背景 條件概率和后驗概率是概率論中的兩個重要概念&#xff0c;在機器學習和貝葉斯推理中尤為關鍵。理解這兩個概念對于處理不確定性和進行推理具有重要意義。本文將通過直觀的例子和數學解釋來詳細介紹條件概率與后驗概率。 條件概率 條件概率是指…

Linux rzsz安裝(在線安裝、離線安裝),用于上傳下載文件

在線安裝&#xff1a; yum -y install lrzsz 離線安裝&#xff1a; 1.下載安裝包地址&#xff1a;http://freshmeat.sourceforge.net/projects/lrzsz/ 2.通過同一網絡內可以上傳文件的機器&#xff08;B機&#xff1a;10.210.168.18&#xff09;先將lrzsz-0.12.20.tar.gz上傳至…

盤點Java中的排序操作方案

盤點Java中的排序操作方案 Comparable 接口-自然排序 類implements Comparable接口 類重寫 public int compareTo(Object obj)方法 如果返回值為正數&#xff0c;則表示當前對象(調用該方法的對象)比 obj 對象“大”&#xff1b;反之“小”&#xff1b;如果為零的話&#x…

多家知名媒體到訪“光子1號金融算力中心“ 交流AI與算力未來觀

5月23日&#xff0c;企商在線 “光子1號金融算力中心媒體參觀日”活動成功舉辦&#xff0c;十多家主流媒體、IT行業媒體及自媒體代表走進光子1號金融算力中心&#xff0c;深入了解企商業務發展、戰略規劃及“光子1號金融算力中心”等企商打造的新型數字基礎設施&#xff0c;共同…

Python條件分支與循環

大家好&#xff0c;當涉及到編寫高效和靈活的程序時&#xff0c;條件分支和循環是 Python 中至關重要的概念。它們允許我們根據不同的條件執行不同的代碼塊&#xff0c;或者重復執行一組語句。條件分支和循環是測試開發工程師在日常工作中經常使用的工具&#xff0c;無論是編寫…

光耦合器的特性和應用概述

光耦合器又稱光電耦合器&#xff0c;是現代電子學中必不可少的元件&#xff0c;確保隔離電路之間安全有效的信號傳輸。本文探討了光耦合器的特性及其多樣化應用&#xff0c;強調了它們在各種電子系統中的關鍵作用。 什么是光耦合器&#xff1f; 光耦合器是一種設計用于利用光傳…

Java 18新特性詳細介紹

Java作為一門廣泛使用的編程語言&#xff0c;一直在不斷地發展和更新。Java 18是Java的最新版本&#xff0c;它引入了許多新特性和改進&#xff0c;使得開發過程更加高效、安全和便捷。本文將詳細介紹Java 18的新特性&#xff0c;幫助開發者更好地了解和應用這些新功能。 JEP …

vue詳解(4)

1. v-model 原理 原理&#xff1a;v-model本質上是一個語法糖。例如應用在輸入框上&#xff0c;就是 value屬性 和 input事件 的合寫。作用&#xff1a;提供數據的雙向綁定。① 數據變&#xff0c;視圖跟著變 :value&#xff1b;② 視圖變&#xff0c;數據跟著變 input注意&am…