毎秒最低 10 の異なるソースからデータを受け取るテーブルがあります。
テーブルを月ごとに分割し、毎月テーブルを作成してデータをテーブルに入力します。各テーブルには、最低 100 万件のレコードが保持されます。
主キーとして 6 つのフィールドがあり、インデックス付きの 7 つのフィールドがあります。
MySQL の他の設定は変更していません (Ubuntu に付属するデフォルト)。
テーブルで実行されるクエリは 2 つだけです (挿入と選択)
。データベースが原因でアプリケーションが遅くなっていることがわかります。
クエリのパフォーマンスを向上させる方法はありますか。
1801 次
2 に答える
0
まず、MySQL のパフォーマンスを扱う場合、どのエンジンを使用しているかを知る必要があります。
次に、考えられるパフォーマンスの問題を絞り込む必要があります。SELECT よりも INSERT アクセスに大きな問題があると思います。実際、SELECTクエリが遅くなっても、クエリ自体が複雑な場合、INSERTが頻繁に発生し、システムが崩壊する可能性があります(または、最終的にシステムの速度が低下し、SELECTの速度が低下します)結果として)。
したがって、INSERT を高速化するために、本当に必要なインデックス (通常は SELECT WHERE 句で使用される列) のみを保持することをお勧めします。これは、深刻な改善であることが証明されます。
SELECT 自体の最適化に関しては、クエリを確認しないと、それ以上の支援は困難です。
于 2013-02-15T16:11:35.840 に答える
0
インデックスの最適化やステートメントの最適化など、Explain plan を使用してクエリの最適化を試みることができます。これは、実行速度に大きな影響を与える可能性があります。
于 2013-01-30T05:30:13.873 に答える