我有一个包含大约 220 万行的表,并且在表上我试图通过几个连接来提取查询。这些连接之一是子查询。我已经尽可能地优化了它,而不是完全重写应用程序代码。
以下是EXPLAIN()
此特定查询的结果:
正如我用红色突出显示的那样,点击表中有很多记录要经过。第 4 行是我的子查询连接,但运行我自己的测试,缓慢似乎来自那个巨大的表。
因此,当我运行此查询时,我正在查看我在 Amazon CloudWatch 中预置的 IOPS 和延迟:
看看这个,可以说我需要更多的预置 IOPS 吗?我现在只有1000个。
我真的知道在这里还能做什么。
我也想知道 - 我在这个 RDS 上有一个只读副本,在队列中的只读副本上运行这个查询是否有意义,这样我的主数据库就不会影响生产性能?