16K原子写

更新时间:2025-04-29 02:15:30

RDS MySQL16K原子写功能通过关闭实例的innodb_doublewrite(InnoDB双写机制)来提升写入效率。本文为您介绍该功能的使用方法以及性能测试结果。

背景信息

MySQLInnoDB引擎数据的最小读写单位是Page(大小一般为16 KB),但文件系统的IO最小单位一般是4 KB。当数据页写入磁盘时,如果发生断电等极端情况,可能会导致InnoDB中部分数据页未完全写入磁盘。因此,InnoDB引入了双写的机制以来确保数据页的原子性,以防止半写错误。当InnoDB需要刷新脏页时,首先将数据写入双写缓冲区;待该缓冲区满后,刷脏线程需等待上一批次的数据完成写盘才能继续。每次刷新数据页都涉及两次写操作,这增加了磁盘I/O资源的消耗。

对于写入密集型应用,磁盘I/O常成为性能瓶颈,InnoDB双写机制会显著增加磁盘带宽负担,进而影响实例整体性能。

功能简介

RDS MySQL支持全链路的16K原子写,开启16K原子写功能后,可以确保每次数据页写入的原子性,从而安全地关闭InnoDB双写机制。这不仅降低了I/O写入量,还简化了刷脏过程,大幅度降低实例写盘的IOPS及带宽需求,达到提升实例写性能的目的。

前提条件

  • 数据库引擎及版本:仅支持MySQL 5.78.0实例。

  • 存储类型:仅支持ESSD云盘与高性能云盘。

  • 产品类型:仅支持倚天版(高可用系列或集群系列)实例。

费用说明

16K原子写功能免费,开启和关闭16K原子写都不会产生额外费用。

注意事项

  • 开启和关闭16K原子写功能时,会导致实例重启,请谨慎操作。

  • 主实例开启16K原子写功能时,无法关闭只读实例的16K原子写功能,避免因性能不一致导致复制延迟。

  • 创建只读实例与备份恢复场景中,16K原子写功能继承原实例配置。

开启16K原子写

倚天版实例(新购和存量)16K原子写功能默认开启。标准版实例暂不支持开启该功能。

关闭16K原子写

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。

  2. 基本信息页面,单击16K原子写右侧的关闭

相关文档

  • 本页导读 (1)
  • 背景信息
  • 功能简介
  • 前提条件
  • 费用说明
  • 注意事项
  • 开启16K原子写
  • 关闭16K原子写
  • 相关文档
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等