亚马逊AWS官方博客

全新 —— Amazon RDS Optimized Reads 与 Optimized Writes

早在 2009 年,我就写过一篇题为“Amazon RDS 简介:Amazon Relational Database Service”的文章并向您介绍过 Amazon RDS:

RDS 让您能够更轻松地在云中设置、操作和扩展关系数据库。您可以直接访问数据库,不必担心基础设施配置、软件维护或常见的数据库管理任务。

自那次发布以来,我们继续尽最大努力帮助您排忧解难,同时还努力使 RDS 更具成本效益。例如,我们最近推出了 Graviton2 数据库实例(可使性价比提升高达 52%)和新的多可用区部署选项(可使性价比提升高达 33%,其事务提交延迟可提速两倍)。

今天,我想向大家介绍两项新功能,它们将加速 Amazon RDS for MySQL 工作负载:

Amazon RDS Optimized Reads 通过将 MySQL 生成的临时表放置在与主机服务器物理连接的基于 NVMe 的 SSD 块存储上,实现更快的查询处理。借助 Optimized Reads,可将使用临时表查询(例如涉及排序、哈希聚合、高负载联接和公用表表达式(CTE)的查询)的执行速度最多提高 50%。

Amazon RDS Optimized Writes 可在不收取额外费用的情况下将写入事务吞吐量提高多达两倍,且能保持相同的预调配 IOPS 水平。Optimized Writes 非常适合生成大量并发事务的写入密集型工作负载。其中包括数字支付、金融交易平台和在线游戏。

Amazon RDS Optimized Reads
Amazon RDS for MySQL(无 Optimized Reads)可将临时表放置在 Amazon Elastic Block Store(Amazon EBS)卷上。Optimized Reads 可将临时对象上的操作从 EBS 转移至附加到 r5dm5dr6gdm6gd 实例的实例存储。因此,用户可更有效地利用 EBS 卷对持久性数据进行读取和写入,并执行刷新、插入缓冲区合并等后台操作。该功能不仅能够提高效率,而且对某些使用案例非常有用:

  • 包括复杂表表达式、派生表和分组操作的分析查询
  • 处理未优化的应用程序查询的只读副本
  • 具有复杂操作(例如 GROUP BY(分组依据)和 ORDER BY(排序依据))的按需或动态报告查询,无法始终使用适当的索引。
  • 使用内部临时表的其他工作负载

您可以监控 MySQL 状态变量 created_tmp_files,以查看临时表的创建率。

实例上可用的实例存储量会因实例系列和实例大小而异。具体指南如下:

实例系列 最小存储量
最大存储量
m5d 75GB 3.6TB
m6gd 237GB 3.8TB
r5d 75GB 3.6TB
r6gd 59GB 3.8TB

Optimized Reads 的使用
如需使用这项新功能,请选择 MySQL 引擎版本 8.0.28 或更高版本,然后在上方列出的任意一种实例上启动 Amazon RDS for MySQL:

您可通过查看新的 CloudWatch 指标(包括 FreeLocalStorageReadIOPSLocalStorageWriteIOPSLocalStorage 等来监控实例存储的使用情况。(有关新指标和现有指标的完整列表,请参阅用户指南)。

Optimized Reads 适用于合格的数据库实例类型可用的所有 AWS 区域。

Amazon RDS Optimized Writes
默认情况下,MySQL 会使用磁盘上的双写缓冲区,该缓冲区为内存和最终磁盘存储之间的中间停靠点。缓冲区的每个页面为 16KiB,但会以 4KiB 的区块写入最终磁盘存储。执行此额外步骤可维护数据的完整性,但也会消耗额外的 I/O 带宽。如需运行我之前描述的写入密集型工作负载,可能需要配置额外的 IOPS 以满足您的性能要求和吞吐量要求。

Optimized Writes 使用了统一的 16KiB 数据库页面、文件系统块和操作系统页面,并以原子方式将它们写入存储(全部或无),从而将性能提高至前文所述的两倍。

Optimized Writes 的使用
如需使用 Optimized Writes,您必须使用 MySQL 8.0 的最新版本在 db.r5bdb.r6i 实例上创建新的数据库实例:

此设置会影响数据库快照的格式,并产生两大重要影响:

  1. 您不能为了启用 Optimized Writes 而将现有的未优化快照恢复为新的优化快照。
  2. 恢复启用优化时创建的快照将在新实例中启用 Optimized Writes。

如果您扩展到不支持 Optimized Writes 的实例类型,Amazon RDS 将在该实例上启用 MySQL 的双写模式,以用作回退选项。如果您从不支持 Optimized Writes 的实例横向缩减到支持 Optimized Writes 的实例,Amazon RDS 将在双写模式下启动 MySQL,等待完成恢复和日志重放操作,然后在禁用双写的情况下重新启动 MySQL。

Optimized Writes 现已在美国东部(俄亥俄、弗吉尼亚北部)、美国西部(俄勒冈州)、亚太地区(新加坡、东京)和欧洲(法兰克福、爱尔兰、巴黎)区域推出,您可以立即开始使用 Optimized Writes 并从中受益!

Jeff