我有一个频繁使用的进程,需要访问第三方API并将数据的简化版本存储到我自己的数据库中。这个数据跨越3个表,所以我有3个独立调用的insert语句。如果此API需要调用100次,那么将运行300条insert语句。
我使用的是亚马逊网络服务EC2 (PHP)和RDS (MySql),现在RDS I/O成本开始与实例成本相匹配,我敢肯定这主要是由于这个过程。
使用multi_query打包这3个insert语句是否会导致三分之一的数据库I/O(从而导致三分之一的相关成本),或者由于必须为每个语句调用$mysqli->more_ result ()而不会有什么不同?
发布于 2013-07-23 05:32:37
我非常怀疑它在这方面会有帮助。
虽然mutli_query很有用,但RDS服务器仍在运行相同数量的查询,与数据库软件相关的对RDS实例的任何读取或写入都会计入IOPS。这也包括日志(binlog,但也包括错误日志、通用日志等)、临时文件等。
您还会发现,长查询或复杂查询将计入多个IOPS。读取副本还会导致额外的IOPS,因为它们正在读取binlog,然后根据该binlog运行查询。
因此,将多个查询放在一个调用中不太可能降低所使用的iops。
https://stackoverflow.com/questions/17792143
复制相似问题