RDS 实例 CPU 为 99%
Posted
技术标签:
【中文标题】RDS 实例 CPU 为 99%【英文标题】:The RDS instance CPU is 99% 【发布时间】:2020-10-08 11:09:49 【问题描述】:在 AWS RDS 中执行耗时较长的查询
一个查询花费了太多时间(大约 3 分钟)。 Db 托管在 AWS RDS 中,具有 2cpu 和 4GB ram(t2.medium)
查询示例是
select DATE_FORMAT(log_date, '%d-%m-%Y') as 'Day',
sum(people_count) as 'count'"
from avg_people_pass
where log_date >= #startDate
and log_date <= #endDate
感谢您的帮助,因为它落后于所有解决方案。
【问题讨论】:
请阅读本文并特别注意查询性能部分。 meta.***.com/questions/271055/… 那么请edit你的问题提供更多关于你的情况的信息。 您的查询中似乎缺少GROUP BY
。这是实际的完整查询吗?
另外,如果您能描述一下表格的大小(包括行和列),将会很有帮助。
13 列 10M 行
我需要升级实例吗?
【参考方案1】:
select DATE_FORMAT(log_date, '%d-%m-%Y') as 'Day',sum(people_count) as 'count' from avg_people_pass where log_date >= #startDate and log_date <= #endDate
我猜您没有在此表上配置索引,因此您正在执行全表扫描。 3 分钟的执行时间意味着一个设计糟糕的大表,没有索引、键或优化。
跑步时会发生什么
explain select DATE_FORMAT(log_date, '%d-%m-%Y') as 'Day',sum(people_count) as 'count' from avg_people_pass where log_date >= #startDate and log_date <= #endDate
查询计划将有助于缩小性能问题的范围。
【讨论】:
【参考方案2】:假设您在此列上还没有索引,这应该使它运行得尽可能快:
CREATE INDEX idx1 ON avg_people_pass (log_date);
【讨论】:
以上是关于RDS 实例 CPU 为 99%的主要内容,如果未能解决你的问题,请参考以下文章