0

我有一个频繁使用的进程,需要访问第 3 方 API 并将数据的删节版本存储到我自己的数据库中。该数据跨越 3 个表,因此我有 3 个独立调用的单独插入语句。如果这个 API 需要被调用 100 次,那就是运行 300 个插入语句。

我正在使用 AWS EC2 (PHP) 和 RDS (MySql),现在 RDS I/O 成本开始与实例成本相匹配,我确信这主要是由于这个过程。

使用 multi_query 打包 3 个插入语句会导致数据库 I/O 的三分之一(因此相关成本的三分之一)还是由于必须调用 $mysqli->more_results()每个陈述?

4

1 回答 1

1

我非常怀疑它会在这方面有所帮助。

虽然 mutli_query 很有用,但 RDS 服务器仍在运行相同数量的查询,IOPS 被计算为对与数据库软件相关的 RDS 实例的任何读取或写入。这也包括日志(binlog,还有错误日志、常规日志等)、临时文件等。

您还会发现长查询或复杂查询将计为多次 IOPS。只读副本也会导致额外的 IOPS,因为它们正在读取二进制日志,然后基于它运行查询。

因此,将多个查询放入一个调用中不太可能降低使用的 iops。

于 2013-07-22T21:32:37.283 回答