好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > MySQL InnoDB MRR優化指南

MySQL InnoDB MRR優化指南

熱門標簽:電銷卡外呼系統供應商 400電話可以免費申請嗎 騰訊地圖標注提升 悟空科技電話機器人 福建外呼系統定制化 銅陵防封電銷卡 美國反騷擾電話機器人 怎么在地圖標注位置生成圖片 真人語音電話機器人

前言

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 存儲引擎的架構設計
  • MySQL InnoDB row_id邊界溢出驗證的方法步驟
  • MySQL InnoDB如何保證事務特性示例詳解
  • MySQL啟動報錯問題InnoDB:Unable to lock/ibdata1 error
  • MySQL InnoDB中的鎖機制深入講解
  • 詳解MySQL(InnoDB)是如何處理死鎖的
  • MySQL學習(七):Innodb存儲引擎索引的實現原理詳解
  • MySQL slow_log表無法修改成innodb引擎詳解
  • MySQL存儲引擎InnoDB的配置與使用的講解
  • MySQL Innodb 存儲結構 和 存儲Null值 用法詳解

標簽:湖南 云浮 烏海 武威 湖北 聊城 白銀 臨汾

巨人網絡通訊聲明:本文標題《MySQL InnoDB MRR優化指南》,本文關鍵詞  MySQL,InnoDB,MRR,優化,指南,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL InnoDB MRR優化指南》相關的同類信息!
  • 本頁收集關于MySQL InnoDB MRR優化指南的相關信息資訊供網民參考!
  • 推薦文章