我的一位客户拥有 RDS MySQL DB,与读取 IOPS 相比,其写入 IOPS 较高。尝试将 CPU 和内存分别增加到 8 和 61 GB,但结果仍然相同。这是一个不太流行的小型电子商务应用程序。我检查了 DB 连接,它总是在 5 到 20 之间移动。我不是 DB 专家,但我检查了 Innodb 文件大小和类似的参数,一切看起来都是默认值。
有人能告诉我问题出在哪里吗?是基础设施的问题还是糟糕的编码/SQL 查询?无论是哪种情况,是否有任何输入可以减少此写入 IOPS。
仅供参考,数据库大小总计为 50 GB,预配置 IOPS 高达 1000。单个最大表大小约为 500 MB。
任何帮助将非常感激。
答案1
据我(仍然有限的)理解,IOPS 数字反映磁盘 I/O,而不是一般操作。
考虑到这一点,我认为以下情况适用:
- 每次对数据库的写入操作(即任何
INSERT
等UPDATE
语句)都会更新内存中的数据,并触发对磁盘的写入操作(以持久化数据) - 但是,读取操作(即
SELECT
语句)大部分可以从内存中提供(尤其是较小的数据集),因此不会引起任何磁盘读取操作。