0

人々

私は現在、電気通信プロジェクトに取り組んでおり、CDR (通話詳細レコード) ファイルを処理しており、それに基づいてレポートを生成しています。1 日あたりのレコード数は約 400 万レコードで、1 か月あたりの平均レコード数は約 9,000 万レコードです。mysql データベースを使用しています。ストアド プロシージャを実行してレコードを処理します。問題は、クエリの実行に関するパフォーマンスの問題に直面していることです。クエリを処理して結果を取得するのに約 4 分かかります。

サーバーの RAM は 4GB です。

私の懸念は

私たちが使用しているRAMは、この種のプロジェクトには十分です

ここで、深刻な DBA のアドバイスをお願いします。

4

2 に答える 2

1

通常、RAM はデータベース サーバーのボトルネックですが、必ずしも最大ではありません。クエリが遅くなる理由を本当に理解することが重要です。9,000 万件のレコードがあることを考えると、テーブルに適切なインデックスを設定することが重要であると言っても過言ではありません。さらに、クエリの詳細を知らなければ、なぜ遅いのかを推測するのは困難です。考慮すべきもう 1 つの領域は、クエリ内の結合の数と種類です。クエリが「単純」 (結合が少ない) ほど、通常はクエリが高速化されます。

最終的には、クエリの説明を行い、さまざまな段階を調べて、遅さの原因を確認します。クエリを最適化する方法を理解するために、ここから始めます。

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 に答える