首先,服务器设置:
我遇到的问题是令人费解的慢查询,有时会运行大约100毫秒(理想),但通常会达到10秒或更多。虽然time是查询中的参数,但快速和慢速查询之间的差异比结果集中的更改频繁发生。这似乎与CPU使用率,内存使用率,读/写I / O,请求频率等任何有意义的峰值无关。它似乎是任意的。
我试过了:
有没有人有关于如何调试此问题的想法?
答案 0 :(得分:1)
这是共享租赁带给你的,不可预测的结果。
查询运行的数据集大小是多少?虽然Craig说这听起来像是busrty checkpoint活动,但这没有意义,因为这是RDS。这听起来更像缓存掉落,例如;你的关系正在缓存中。
你说你正在运行piop但是m3.medium不是EBS优化的实例。
至少需要:
高实例级别。确保您的内存超过活动数据集。
EBS优化实例,请参见此处:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html
很多记忆。
PIOPS
当你拥有所有这一切时,你将意识到你将节省大量资金,将PostgreSQL(或任何数据库)推向裸机,让AWS保持擅长的状态,内存和CPU(不是IO)。 / p>
答案 1 :(得分:0)
您可以在psql中尝试此操作以获取有关查询计时的更多详细信息 EXPLAIN sql_statement 还要打开更多数据库日志记录。 mysql的查询分析速度很慢,也许PostgreSQL有一个等价的。