最新要闻
- 精彩看点:中消协出手:反对扫码强制关注公众号 全国范围可举报
- 学生自掏30万拍作品:因获三等奖嫌低拒绝领奖_热文
- 号称性能最强轻薄掌机:AYANEO预热新AMD 7840U处理器掌机_天天即时看
- 210元大额券:礼盒装红蜻蜓男士真皮自动皮带49元大促_环球新资讯
- 还买啥RTX 3060 英特尔A770 16GB显卡1779元
- 科学家警告:用AI生成内容训练AI 几代内将产生“垃圾”
- 《暗黑破坏神4》官方晒自定义RTX4080显卡 莉莉丝雕塑逼真吗?
- 微头条丨毕业典礼上学生帽穗丢了:老师无实物拨穗
- 环球热门:高考后考生特种兵式出游有多拼?准大学生凌晨2点坐飞机五天游五城
- 采用模块化可拆卸设计:Fairphone 5手机承诺提供5年保修
- 世界观焦点:被曝脏乱粽子厂曾中标学校配餐项目 卫生脏乱粽子厂抽检曾发现问题
- 环球今日讯!高考生们看过来!“2023年高考网上咨询周”时间安排公布
- 当前视点!高速停车致三车追尾自己却溜了 驾驶员称跟自己没关系 被判全责
- 无毒无污染、更完美!长征六号火箭第11次成功发射|焦点速读
- 今日热文:手机为何不再使用可拆卸电池?原因揭开
- 天涯社区苦等“救命钱”!重启天涯宣布再开直播:筹款还是300万|快消息
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
InnoDB 内存结构之更改缓冲区 环球新消息
更改缓冲区(Change Buffer)是一种特殊的数据结构,用于缓存不在缓冲池中的二级索引(secondary index)页的更改。可能来自于INSERT
、UPDATE
或DELETE
操作(数据操作语言,DML)的缓冲更改,会在后续通过其他读操作将这些页加载到缓冲池时被合并。
(相关资料图)
与聚簇索引(clustered indexes)不同,二级索引通常是不唯一的,并且对二级索引的插入操作以相对随机的 顺序发生。同样地,删除和更新操作可能会影响索引树中不相邻的二级索引页。随后当受影响的页被其他操作读入缓冲池时,合并缓存中的更改可以避免从磁盘读取二级索引页到缓冲池中所需的大量随机访问I/O。
在系统大部分处于空闲状态或慢速关闭期间,会运行清理(purge)操作,定期将更新的索引页写入磁盘。与立即将每个值写入磁盘相比,清理操作可以更高效地将索引值批量写入磁盘。
当有大量受影响的行和需要更新的二级索引时,变更缓冲区的合并过程可能需要几个小时。在此期间,磁盘 I/O 会增加,这可能导致磁盘密集型查询明显减慢。提交事务之后,甚至在服务器关闭并重新启动之后,变更缓冲区合并也可能会持续发生(请参阅“第 14.22.2 节“强制 InnoDB 恢复”了解更多信息)。
在内存中,变更缓冲区占用了缓冲池的一部分空间。在磁盘上,变更缓冲区是系统表空间的一部分,当数据库服务器关闭时,索引更改将存储在其中。
变更缓冲区中缓存的数据类型由innodb_change_buffering
变量控制。要了解更多信息,请参阅下文的”配置变更缓冲区“。您还可以配置最大变更缓冲区大小。要了解更多信息,请参阅下文的”配置最大变更缓冲区的大小“。
如果二级索引包含降序索引列,或者主键包含降序索引列,那么变更缓冲区不支持对该二级索引进行缓冲。
有关变更缓冲区的常见问题的解答,请参见第 A.16 节“ MySQL 5.7 FAQ: InnoDB 变更缓冲区”。
配置变更缓冲区
当对表执行INSERT
、UPDATE
和DELETE
操作时,索引列的值(尤其是二级键的值)通常是无序的,需要大量的 I/O 操作来更新二级索引。变更缓冲区会在相关页面不在缓冲池中时缓存对二级索引条目的更改,从而通过不会立即从磁盘读取页面来避免昂贵的 I/O 操作。当页面被加载到缓冲池时,缓冲中的更改将合并,更新后的页面随后会刷新到磁盘。在服务器几乎空闲或慢速关闭时,InnoDB
主线程会合并缓冲中的更改。
由于变更缓冲区可以减少磁盘读写操作,因此它对于 I/O 密集型的工作负载最为有价值。例如,变更缓冲可以给频繁进行 DML 操作(如批量插入)的应用程序带来好处。
但是,变更缓冲区占用了缓冲池的一部分空间,从而减少了可用于缓存数据页面的内存。如果工作集几乎完全适应缓冲池,或者您的表具有相对较少的二级索引,禁用变更缓冲可能是有益的。如果工作数据集完全适合缓冲池,变更缓冲不会增加额外开销,因为它仅适用于不在缓冲池中的页面。
innodb_change_buffering
变量控制着InnoDB
执行变更缓冲的程度。您可以启用或禁用插入操作、删除操作(最初将索引记录标记为删除时)和清理操作(当索引记录被物理删除时)的缓冲。更新操作是插入操作和删除操作的组合。innodb_change_buffering
的默认值为all
。
all
默认值:缓冲区插入,删除标记操作和清除。
none
不缓冲任何操作。
inserts
缓冲插入操作。
deletes
缓冲删除标记操作。
changes
缓冲插入和删除标记操作。
purges
缓冲后台发生的物理删除操作。
您可以在 MySQL 选项文件(my.cnf
或my.ini
)中设置innodb_change_buffering参数,或使用SET GLOBAL语句动态更改它,该语句需要足够的权限来设置全局系统变量。参见第 5.1.8.1 节“系统变量特权”。更改设置会影响新操作的缓冲;现有缓冲条目的合并不受影响。
您可以在 MySQL 的选项文件(my.cnf
或my.ini
)中设置innodb_change_buffering
参数,或者使用SET GLOBAL
语句动态更改它,该语句需要足够的权限来设置全局系统变量。请参阅第 5.1.8.1 节,“系统变量特权”。更改设置会影响新操作的缓冲,但不会影响现有缓冲条目的合并。
配置最大变更缓冲区的大小
innodb_change_buffer_max_size
参数允许按照缓冲池总大小的百分比配置变更缓冲区的最大大小。默认情况下,innodb_change_buffer_max_size
设置为 25。最大设置值为 50。
在 MySQL 服务器上,如果存在大量的插入、更新和删除活动,并且变更缓冲区合并无法跟上新的变更缓冲条目的速度,导致变更缓冲区达到了其最大大小限制,那么可以考虑增加innodb_change_buffer_max_size
。
在 MySQL 服务器上,如果数据是用于报告目的而基本静态,或者如果变更缓冲区占用了与缓冲池共享的太多内存空间,导致页面过早地从缓冲池中淘汰,那么可以考虑减小innodb_change_buffer_max_size
的值。
为了确定最佳配置,您可以使用一个代表性的工作负载来测试不同的设置。innodb_change_buffer_max_size
参数是动态的,这意味着您可以在不重新启动服务器的情况下修改该设置。
监控变更缓冲区
以下选项可用于监控变更缓冲区:
InnoDB
标准监视器输出包括变更缓冲区的状态信息。要查看监视器数据,请执行SHOW ENGINE INNODB STATUS
语句。mysql> SHOW ENGINE INNODB STATUS\G
变更缓冲区状态信息位于
INSERT BUFFER AND ADAPTIVE HASH INDEX
标题下方,并且显示类似以下内容:-------------------------------------INSERT BUFFER AND ADAPTIVE HASH INDEX-------------------------------------Ibuf: size 1, free list len 0, seg size 2, 0 mergesmerged operations: insert 0, delete mark 0, delete 0discarded operations: insert 0, delete mark 0, delete 0Hash table size 4425293, used cells 32, node heap has 1 buffer(s)13577.57 hash searches/s, 202.47 non-hash searches/s
有关更多信息,请参阅第 14.18.3 节 “InnoDB 标准监视器和锁监视器输出”。
Information Schema
的INNODB_METRICS
表提供了InnoDB
标准监视器输出中的大部分数据点以及其他数据点。要查看变更缓冲区指标及其描述,请执行以下查询:mysql> SELECT NAME, COMMENT FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME LIKE "%ibuf%"\G
有关`INNODB_METRICS表用法情况的信息,请参见第 14.16.6 节“ InnoDB INFORMATION_SCHEMA Metrics Table”。
Information Schema
的INNODB_BUFFER_PAGE
表提供了关于缓冲池中每个页面的元数据,包括变更缓冲区索引和变更缓冲区位图页面。变更缓冲区页面通过PAGE_TYPE
进行标识。IBUF_INDEX
是变更缓冲区索引页的页面类型,IBUF_BITMAP
是变更缓冲区位图页的页面类型。Waring:查询
INNODB_BUFFER_PAGE
表可能会带来显著的性能开销。为了避免影响性能,建议在测试实例上重现您要调查的问题,然后在测试实例上运行查询。例如,您可以查询
INNODB_BUFFER_PAGE
表,以确定IBUF_INDEX
和IBUF_BITMAP
页面在总缓冲池页面中的近似比例。mysql> SELECT (SELECT COUNT(*) FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE WHERE PAGE_TYPE LIKE "IBUF%") AS change_buffer_pages, (SELECT COUNT(*) FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE) AS total_pages, (SELECT ((change_buffer_pages/total_pages)*100)) AS change_buffer_page_percentage;+---------------------+-------------+-------------------------------+| change_buffer_pages | total_pages | change_buffer_page_percentage |+---------------------+-------------+-------------------------------+| 25 | 8192 | 0.3052 |+---------------------+-------------+-------------------------------+
有关
INNODB_BUFFER_PAGE
表提供的其他数据的信息,请参阅第 24.4.2 节 “INFORMATION_SCHEMA INNODB_BUFFER_PAGE Table”。有关相关使用信息,请参阅第 14.16.5 节 “InnoDB INFORMATION_SCHEMA缓冲池表”。Performance Schema
为高级性能监控提供了变更缓冲区互斥锁等待检测。要查看变更缓冲区检测,请执行以下查询:mysql> SELECT * FROM performance_schema.setup_instruments WHERE NAME LIKE "%wait/synch/mutex/innodb/ibuf%";+-------------------------------------------------------+---------+-------+| NAME | ENABLED | TIMED |+-------------------------------------------------------+---------+-------+| wait/synch/mutex/innodb/ibuf_bitmap_mutex | YES | YES || wait/synch/mutex/innodb/ibuf_mutex | YES | YES || wait/synch/mutex/innodb/ibuf_pessimistic_insert_mutex | YES | YES |+-------------------------------------------------------+---------+-------+
有关监视
InnoDB
互斥锁等待的信息,请参阅第 14.17.2 节 “使用 Performance Schema 监视 InnoDB 互斥等待”。
注:原文来自 MySQL 5.7 官方文档,阅读 MySQL 中文文档时有些语句理解不顺畅,便结合中文文档使用 ChatGPT 进行了翻译,如有不正请指出。
关键词:
InnoDB 内存结构之更改缓冲区 环球新消息
Springboot web,三层架构, IOC&DI 使用总结2023 关注
快讯 | ShowMeBug入选人力资源智享会《TPG红宝书》 观热点
精彩看点:中消协出手:反对扫码强制关注公众号 全国范围可举报
学生自掏30万拍作品:因获三等奖嫌低拒绝领奖_热文
号称性能最强轻薄掌机:AYANEO预热新AMD 7840U处理器掌机_天天即时看
210元大额券:礼盒装红蜻蜓男士真皮自动皮带49元大促_环球新资讯
还买啥RTX 3060 英特尔A770 16GB显卡1779元
热推荐:史上最全Hadoop面试题:尼恩大数据面试宝典专题1
kafka的学习之一_带SASL鉴权的集群安装与启动
全球今日讯!债市日报:6月20日
科学家警告:用AI生成内容训练AI 几代内将产生“垃圾”
《暗黑破坏神4》官方晒自定义RTX4080显卡 莉莉丝雕塑逼真吗?
微头条丨毕业典礼上学生帽穗丢了:老师无实物拨穗
环球热门:高考后考生特种兵式出游有多拼?准大学生凌晨2点坐飞机五天游五城
采用模块化可拆卸设计:Fairphone 5手机承诺提供5年保修
Python工具箱系列(三十六) 全球资讯
华为云GaussDB为MetaERP“成本核算”产品“保驾护航” 天天观热点
【经验贴】多项目并行,如何解决资源管理这个难点? 热闻
这里的工业为何跑出“加速度”?——福建宁德工业企业一线观察|每日焦点
世界观焦点:被曝脏乱粽子厂曾中标学校配餐项目 卫生脏乱粽子厂抽检曾发现问题
环球今日讯!高考生们看过来!“2023年高考网上咨询周”时间安排公布
当前视点!高速停车致三车追尾自己却溜了 驾驶员称跟自己没关系 被判全责
无毒无污染、更完美!长征六号火箭第11次成功发射|焦点速读
今日热文:手机为何不再使用可拆卸电池?原因揭开
天涯社区苦等“救命钱”!重启天涯宣布再开直播:筹款还是300万|快消息
LPR利率下调10个基点,如何影响你的房贷利率? 播报
世界速讯:以梦为码 自主创新 | 华为云开发者日成都站圆满举行!
ElasticSearch安装与使用-每日视点
天天信息:全国铁路7月1日起实行新的列车运行图 客、货列车分别增加46列和394列
每日消息!中方在世贸组织提交贸易与环境政策相关提案
家居巨头宜家引入AI:下一代沙发将由人工智能设计
华硕Zenfone 10外观首曝:二代骁龙8小屏旗舰
地表最强RTX 4090!索泰RTX 4090 PGF显卡图赏 世界简讯
广州新规:快递入柜需收件人同意 虚假签收最高可罚三万!
天天信息:长虹发布全球首款多模态交互电视:不管说什么都能听懂
天天速读:南方强降雨频繁有致灾风险 北方高温明起再登场
微动态丨标准IO使用复习
视讯!ABAQUS 模拟过盈配合解决材料选择及公差带设计等问题
全球观察:maven 使用总结2023
人民银行合肥中心支行联合交易商协会举办债务融资工具业务培训|环球滚动
货币宽松抬升经济复苏放缓预期 日债收益率曲线延续趋陡-快讯
每日热闻!英亿万富翁探索泰坦尼克号残骸 现已失联超24小时!
售价超20万元 AMD最贵显卡MI300X诞生:192GB显存史无前例
今日聚焦!雷军武汉大学演讲:36年前教授这句话打通我任督二脉
一天两瓶喝不够:认养一头牛酸/纯奶30盒79.9元抄底(50元立减券)_今日热文
原装进口!雀巢黑咖啡官旗大促:券后每杯仅需0.6元|天天热点
最新快讯!新干县气象台发布雷电黄色预警信号【III级/较重】【2023-06-20】
Apache Superset 身份认证绕过漏洞(CVE-2023-27524)
关于IEnumerable和IQuerable之间的区别 全球通讯
java~二进制补码的用途|世界新消息
中国广电5G悲催的第一年:信号差 销户难
智能驾驶将进入大模型时代!理想发布通勤NOA内测视频 可自主学习
第一款ITX A620终于出现!最便宜的AMD迷你小板 热门
鸡蛋壳难剥是鸡蛋放的久了吗 为什么鸡蛋的壳很难剥 天天新动态
统信UOS系统开发笔记(五):安装QtCreator开发IDE中的中文输入环境Fcitx输入法
强化学习从基础到进阶-常见问题和面试必知必答[2]:马尔科夫决策、贝尔曼方程、动态规划、策略价值迭代
Linux安装MongoDB 4.0.3
当前观点:C#12“实用”的新功能:类型的别名
聚焦廊坊经洽会 | 务实高效办会 彰显河北高水平开放新形象
天天快消息!带宽翻倍更能超!影驰HOF Classic D5-7000内存评测:超至7800MHz仍有余力
年轻人第一款奢侈品?《王者荣耀》联名宝格丽:首款数字珠宝皮肤来了
环球今日讯!比亚迪宋PLUS冠军版一惊喜变化:日系SUV崩溃倒计时开始!
i5/i7该选谁?差距大不大?i5-13490F、i7-13790F深度测试
6月19日老酒价格|飞天次新酒上涨 生肖节气下跌 十七大老酒市场价 当前视点
ChatGPT 初探 - 冰蓝老师 天天微头条
天天新资讯:线性结构中的栈、队列和串是怎么回事?
当前看点!如何将PCM格式的原始音频采样数据编码为MP3格式或AAC格式的音频文件?
全球头条:maven构建报错:Unable to load the mojo 'install' (or one of its required compone
每日聚焦:“降息”靴子落地!
环球观察:《庆余年2》又新增七位女角色,金晨出演叶灵儿
赛力斯SERES 5出海欧洲市场:德国不限速高速飙到225Km/h
颜值超高碾压一众国产!长安启源A07路试:上市就打比亚迪汉
宝马5系首获半自动驾驶认证:变道只需看眼后视镜|世界短讯
100元记3分!杭州对“加塞”司机开罚 网友:请全国推广 消息
广东荔枝价格跌至5年来最低:仅需3、4元一斤
街拍,游走在法律和道德边缘
CSS3有哪些新特性_全球最资讯
全球即时看!数据库三大范式(考试必备)
世界要闻:使用 JMX-Exporter 监控 Kafka 和 Zookeeper
A Practical Methodology, HSM, Handler,Service,Model, for Golang Backend Developm
【环球聚看点】直播源码搭建技术弹幕消息功能的实现
世界观热点:6月20日 11:03分 迈普医学(301033)股价快速拉升
日系还香吗?新一代本田皓影混动/插混上市:19.99万起要打比亚迪_世界报资讯
16.5亿打造!《封神三部曲》第一部7月20上映:预告片发布
全脂/低脂可选:特仑苏纯牛奶2.7元/盒大促(商超6元)
世界快看点丨微软明确不会涉足VR:市场实在太小
红魔8S Pro首发高频版骁龙8 Gen2!170万跑分比骁龙8 Gen3还猛 焦点速讯
【全球新要闻】对在建工程“全面体检”
全球新资讯:关于线性结构中的双向链表如何实现?
NCalc 学习笔记 (六)|天天观热点
也说一说IDEA热部署Web项目最终解决方案,确实大大提高工作效率
每日视点!详解在 Linux 启动时,如何自动执行命令或脚本
最资讯丨失乐园电影迅雷下载 失乐园电影未删减版迅雷下载
债市相对更强,股市估值处相对低位-焦点速递
墓地无人汽车探测到“鬼影”!真相到底是什么?
上海双层敞篷观光巴士将永久退役:已达13年强制报废标准 后继无车
首创双枪充电遥遥领先!比亚迪腾势N7首批量产车下线
高考过后 多所知名大学校长纷纷出镜招生|全球短讯
新买不到一个月特斯拉充电冒烟爆炸 女车主:很失望 产生心理阴影_天天动态