我有一个MySQL(InnoDB)数据库,其中包含行数在1 000 000到5 000 000之间的表。 在晚上有聚合作业,它会计算一些信息并将它们写入报告表。
拳头作业执行速度非常快。每个查询都在100ms和1s之间执行。 在那之后,几乎每一个查询都非常慢。
示例查询是:
SELECT count(*) FROM tableA
JOIN tableB ON tableA.id = tableB.tableA_id
该查询的执行计划显示,对于这两个表,将使用索引。
重要的是CPU,I / O,内存使用率非常低。 MySQL服务器版本:5.5.28,默认设置(仅安装在Windows 7开发人员计算机上)。
答案 0 :(得分:0)
从提供的信息中很难说清楚。我假设你已经完成了EXPLAIN等。在之前的经历中,我的一个查询突然变慢了,我意识到某个字段突然填充了大量数据。而不是使用count(*)可能尝试count(tableA.id)。
查看这是否有助于提供更多信息或提供更多信息。
答案 1 :(得分:0)
也许,它不是真正的查询,而是写入报告表,这很慢。 我会尝试两件事:
insert
或update
的效果