返回顶部
首页 > 资讯 > 数据库 >MySQL中InnoDB MRR优化的示例分析
  • 298
分享到

MySQL中InnoDB MRR优化的示例分析

2024-04-02 19:04:59 298人浏览 薄情痞子
摘要

这篇文章将为大家详细讲解有关Mysql中InnoDB MRR优化的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言MRR 是 Multi-Range Read

这篇文章将为大家详细讲解有关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优化的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中InnoDB MRR优化的示例分析

本文链接: https://lsjlt.com/news/57736.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL中InnoDB MRR优化的示例分析
    这篇文章将为大家详细讲解有关MySQL中InnoDB MRR优化的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言MRR 是 Multi-Range Read ...
    99+
    2024-04-02
  • mysql中limit优化的示例分析
    小编给大家分享一下mysql中limit优化的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!    ...
    99+
    2024-04-02
  • MySQL中table_cache优化的示例分析
    这篇文章主要介绍MySQL中table_cache优化的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!table_cache指定表高速缓存的大小。每当MySQL访问一个表时,...
    99+
    2024-04-02
  • Mysql-InnoDB锁的示例分析
    小编给大家分享一下Mysql-InnoDB锁的示例分析,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!锁类型行级锁锁模式只有LOCK_S 和LOCK_X,其他的 FLAG 用于锁的描述,如前述 ...
    99+
    2024-04-02
  • mysql hint优化的示例分析
    这篇文章将为大家详细讲解有关mysql hint优化的示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。SELECT t.oldcontract...
    99+
    2024-04-02
  • MySQL中show engine innodb status的示例分析
    这篇文章主要为大家展示了“MySQL中show engine innodb status的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL中sh...
    99+
    2024-04-02
  • Mysql-InnoDB事物的示例分析
    这篇文章给大家分享的是有关Mysql-InnoDB事物的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。事物基本概念事物的特性(ACID)原子性 atomicity一致性 ...
    99+
    2024-04-02
  • Mysql优化之Zabbix分区优化的示例分析
    这篇文章主要介绍了Mysql优化之Zabbix分区优化的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用zabbix最大的瓶颈在于...
    99+
    2024-04-02
  • mysql中慢查询优化的示例分析
    这篇文章主要介绍mysql中慢查询优化的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一个用户反映线上一个SQL语句执行时间慢得无法接受。SQL语句看上去很简单(本文描述中修...
    99+
    2024-04-02
  • MySQL中SQL语句优化的示例分析
    这篇文章主要介绍MySQL中SQL语句优化的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!sql如下:sql强制用了into_time索引# Time: 2017-02-14...
    99+
    2024-04-02
  • MySQL中SQL优化建议的示例分析
    这期内容当中小编将会给大家带来有关MySQL中SQL优化建议的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。今天早上看到同事的一个优化需求,优化的时间其实不多,但...
    99+
    2024-04-02
  • MySQL中索引与优化的示例分析
    这篇文章主要介绍MySQL中索引与优化的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!索引与优化1、选择索引的数据类型MySQL支持很多数据类型,选择合适的数据类型存储数据对...
    99+
    2024-04-02
  • MySQL大表优化的示例分析
    小编给大家分享一下MySQL大表优化的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!背景阿里云RDS FOR MySQL(MySQL5.7版本)数据库业务表每月新增数据量超过千万,...
    99+
    2024-04-02
  • MySQL查询优化的示例分析
    小编给大家分享一下MySQL查询优化的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、优化的思路和原则有哪些1、 优化更需要优化的查询 2、 定位优化对象的性能瓶颈 3、 明确优...
    99+
    2024-04-02
  • Mysql优化策略的示例分析
    这篇文章主要介绍Mysql优化策略的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!总的来说:1、数据库设计和表创建时就要考虑性能2、sql的编写需要注意优化3、分区、分表、分...
    99+
    2024-04-02
  • my.ini与mysql优化的示例分析
    小编给大家分享一下my.ini与mysql优化的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql优化了所以先说说...
    99+
    2024-04-02
  • MySQL中InnoDB存储文件的示例分析
    这篇文章主要为大家展示了“MySQL中InnoDB存储文件的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL中InnoDB存储文件的示例分析”这...
    99+
    2024-04-02
  • MySQL中InnoDB存储引擎的示例分析
    这篇文章主要介绍MySQL中InnoDB存储引擎的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、存储引擎SQL 的执行计划是执行器组件调用存储引擎的接口来完成的。那我们可...
    99+
    2024-04-02
  • MySQL中InnoDB内部机制的示例分析
    这篇文章主要介绍了MySQL中InnoDB内部机制的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 Read view I...
    99+
    2024-04-02
  • mysql中InnoDB和MyISAM对比的示例分析
    这篇文章主要介绍了mysql中InnoDB和MyISAM对比的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。事务:InnoDB 是事务型的,可以使用 Commit 和...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作