91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中InnoDB MRR優化的示例分析

發布時間:2021-07-30 11:28:11 來源:億速云 閱讀:171 作者:小新 欄目:MySQL數據庫

這篇文章將為大家詳細講解有關MySQL中InnoDB MRR優化的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

前言

MRR 是 Multi-Range Read 的簡寫,目的是減少磁盤隨機訪問,將隨機訪問轉化為較為順序的訪問。適用于 range/ref/eq_ref 類型的查詢。

實現原理:

1、在二級索引查找后,根據得到的主鍵到聚簇索引找出需要的數據。

2、二級索引查找得到的主鍵的順序是不確定的,因為二級索引的順序與聚簇索引的順序不一定一致;

3、如果沒有 MRR,那么在聚簇索引查找時就可能出現亂序讀取數據頁,這對于機械硬盤是及其不友好的。

4、MRR 的優化方式:

  • 將查找到的二級索引鍵值放在一個緩存中;

  • 將緩存中的鍵值按照 主鍵 進行排序;

  • 根據排序后的主鍵去聚簇索引訪問實際的數據文件。

5、當優化器使用了 MRR 時,執行計劃的 Extra 列會出現 “Using MRR” 。

6、如果查詢使用的二級索引的順序本身與結果集的順序一致,那么使用 MRR 后需要對得到的結果集進行排序。

使用 MRR 還可以減少緩沖池中頁被替換的次數,批量處理對鍵值的查詢操作。

可以使用命令 select @@optimizer_switch; 查看是否開啟了 MRR:

index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=on,mrr=off,mrr_cost_based=on,block_nested_loop=on,batched_key_access=off,materialization=on,semijoin=on,loosescan=on,firstmatch=on,duplicateweedout=on,subquery_materialization_cost_based=on,use_index_extensions=on,condition_fanout_filter=on,derived_merge=on,use_invisible_indexes=off,skip_scan=on

mrr_cost_based=on 表示是否通過 cost based 的方式來選擇使用 MRR 。

set @@optimizer_switch='mrr=on/off'; 命令開啟或關閉 MRR 。

select @@read_rnd_buffer_size ; 參數用來控制鍵值的緩沖區大小,默認 256K,當大于該參數值時,執行器根據主鍵對已緩存的數據進行排序,然后再通過主鍵取得行數據。

關于“MySQL中InnoDB MRR優化的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

双峰县| 灵台县| 六枝特区| 德阳市| 鄂托克前旗| 寿光市| 贺州市| 互助| 沁源县| 遂平县| 衡南县| 响水县| 海淀区| 于田县| 永川市| 二手房| 宁远县| 永仁县| 娱乐| 双鸭山市| 建始县| 建水县| 台江县| 武威市| 姚安县| 大丰市| 绩溪县| 睢宁县| 西乌| 洱源县| 陆川县| 武城县| 北安市| 维西| 屏山县| 南乐县| 满城县| 清涧县| 双峰县| 南郑县| 大埔县|