婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫(kù) > MySQL InnoDB MRR優(yōu)化指南

MySQL InnoDB MRR優(yōu)化指南

熱門標(biāo)簽:電銷卡外呼系統(tǒng)供應(yīng)商 400電話可以免費(fèi)申請(qǐng)嗎 騰訊地圖標(biāo)注提升 悟空科技電話機(jī)器人 福建外呼系統(tǒng)定制化 銅陵防封電銷卡 美國(guó)反騷擾電話機(jī)器人 怎么在地圖標(biāo)注位置生成圖片 真人語音電話機(jī)器人

前言

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

實(shí)現(xiàn)原理:

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

2、二級(jí)索引查找得到的主鍵的順序是不確定的,因?yàn)槎?jí)索引的順序與聚簇索引的順序不一定一致;

3、如果沒有 MRR,那么在聚簇索引查找時(shí)就可能出現(xiàn)亂序讀取數(shù)據(jù)頁,這對(duì)于機(jī)械硬盤是及其不友好的。

4、MRR 的優(yōu)化方式:

  • 將查找到的二級(jí)索引鍵值放在一個(gè)緩存中;
  • 將緩存中的鍵值按照 主鍵 進(jìn)行排序;
  • 根據(jù)排序后的主鍵去聚簇索引訪問實(shí)際的數(shù)據(jù)文件。

5、當(dāng)優(yōu)化器使用了 MRR 時(shí),執(zhí)行計(jì)劃的 Extra 列會(huì)出現(xiàn) “Using MRR” 。

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

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

可以使用命令 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'; 命令開啟或關(guān)閉 MRR 。

select @@read_rnd_buffer_size ; 參數(shù)用來控制鍵值的緩沖區(qū)大小,默認(rèn) 256K,當(dāng)大于該參數(shù)值時(shí),執(zhí)行器根據(jù)主鍵對(duì)已緩存的數(shù)據(jù)進(jìn)行排序,然后再通過主鍵取得行數(shù)據(jù)。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • MySQL 學(xué)習(xí)總結(jié) 之 初步了解 InnoDB 存儲(chǔ)引擎的架構(gòu)設(shè)計(jì)
  • MySQL InnoDB row_id邊界溢出驗(yàn)證的方法步驟
  • MySQL InnoDB如何保證事務(wù)特性示例詳解
  • MySQL啟動(dòng)報(bào)錯(cuò)問題InnoDB:Unable to lock/ibdata1 error
  • MySQL InnoDB中的鎖機(jī)制深入講解
  • 詳解MySQL(InnoDB)是如何處理死鎖的
  • MySQL學(xué)習(xí)(七):Innodb存儲(chǔ)引擎索引的實(shí)現(xiàn)原理詳解
  • MySQL slow_log表無法修改成innodb引擎詳解
  • MySQL存儲(chǔ)引擎InnoDB的配置與使用的講解
  • MySQL Innodb 存儲(chǔ)結(jié)構(gòu) 和 存儲(chǔ)Null值 用法詳解

標(biāo)簽:湖南 云浮 烏海 武威 湖北 聊城 白銀 臨汾

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL InnoDB MRR優(yōu)化指南》,本文關(guān)鍵詞  MySQL,InnoDB,MRR,優(yōu)化,指南,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL InnoDB MRR優(yōu)化指南》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL InnoDB MRR優(yōu)化指南的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 古浪县| 无极县| 山阳县| 灵宝市| 新源县| 潍坊市| 阳谷县| 蒙阴县| 太谷县| 齐齐哈尔市| 札达县| 信宜市| 观塘区| 明光市| 微山县| 万宁市| 晋宁县| 武陟县| 江都市| 榆中县| 元阳县| 龙胜| 保靖县| 信阳市| 旌德县| 邯郸市| 离岛区| 定安县| 鱼台县| 武夷山市| 阿尔山市| 桂东县| 浑源县| 商水县| 瓮安县| 息烽县| 昆明市| 高台县| 灵台县| 漳浦县| 宽城|