0

乡亲

我目前正在从事电信项目并处理 CDR(呼叫详细信息记录)文件,并基于该文件生成报告。我每天获得的记录约为 400 万条记录,每月平均约为 9000 万条记录。我们正在使用 mysql 数据库并运行存储过程来处理记录。问题是我们在运行查询时面临性能问题。查询大约需要 4 分钟来处理和获取结果。

服务器内存为 4GB。

我担心的是

我们使用的 RAM 是否足够用于此类项目

我想在这里得到一些严肃的 DBA 建议。

4

2 回答 2

1

RAM 通常是数据库服务器的瓶颈,但不一定是最大的。真正理解查询变慢的原因很重要。现在鉴于有 9000 万条记录,可以肯定地说,在表上拥有正确的索引很重要。此外,在不知道查询细节的情况下,很难猜出它为什么慢。另一个需要考虑的方面是查询中连接的数量和类型。查询“更简单”(连接更少),通常这会加快查询速度。

最终,尽管我会对查询进行解释,以查看各个阶段以了解缓慢的来源。我将从这里开始了解如何优化查询:

http://dev.mysql.com/doc/refman/5.0/en/using-explain.html

于 2013-09-20T05:37:20.733 回答
0

RAM 不能是这里唯一的限制。您还需要有适当的数据库设计、服务器配置和索引。

如果您只处理数据以获取报告,请使用 MyISAM 引擎(如果尚未使用)。

于 2013-09-20T05:33:33.643 回答