乡亲们
我目前在一个电信项目上工作,正在处理CDR (通话详细信息记录)文件,在此基础上,我每天获得的reports.Records约为400万条记录,每月约有9000万条avg.we使用mysql数据库并运行存储过程来处理这些记录。问题是我们在运行查询时面临着性能问题。查询大约需要4分钟来处理和获取结果。
服务器RAM为4 4GB。
我担心的是
对于这类项目,我们使用的RAM是否足够
我想在这里得到一些严肃的DBA建议。
发布于 2013-09-20 13:37:21
RAM通常是数据库服务器的瓶颈,但不一定是最大的。真正了解查询缓慢的原因是很重要的。现在有9000万条记录,可以肯定地说表上有正确的索引是很重要的。此外,如果不知道查询的细节,就很难猜测为什么查询速度很慢。另一个需要考虑的方面是查询中连接的数量和类型。查询越“简单”(连接越少),通常这会加快查询速度。
最终,我会对查询做一个解释,看看不同的阶段,看看缓慢来自哪里。我将从这里开始了解如何优化查询:
http://dev.mysql.com/doc/refman/5.0/en/using-explain.html
发布于 2013-09-20 13:33:34
RAM不能是这里唯一的约束。你需要有适当的数据库设计,服务器配置和索引。
如果仅处理数据以获取报告,请使用MyISAM引擎(如果尚未使用)。
https://stackoverflow.com/questions/18909405
复制相似问题