アプリケーションとデータベースのベンチマークを行い、ボトルネックのある場所を見つけます。1 つのボトルネックを修正 (または、それを「ダミー」モジュールで置換) することによって、次のボトルネックの識別に進むことができます。現在のアプリケーションの全体的なパフォーマンスが許容できるものであっても、いつか実際にパフォーマンスの強化が必要になった場合に、少なくとも各ボトルネックの計画を立て、解決方法を決定しておくべきです。
移植可能なベンチマークプログラムの例については、MySQL ベンチマークスイートのそれらを参照してください。セクション8.12.2「MySQL ベンチマークスイート」を参照してください。このスイートから任意のプログラムを選び、独自のニーズに合わせて変更できます。これを実行することによって、それぞれの問題に対してさまざまな解決方法を試してみて、実際にもっとも高速であるのはどれかをテストできます。
もう 1 つの無料のベンチマークスイートは Open Source Database Benchmark であり、http://osdb.sourceforge.net/ で入手できます。
システムの負荷が非常に高い場合にのみ問題が発生することはよくあることです。(テスト済みの) システムを本稼働させて、負荷の問題が発生したときに、問い合わせてくる顧客が多数いました。ほとんどの場合、パフォーマンスの問題は、高負荷時のテーブルスキャンの不良などデータベースの基本的な設計の問題か、オペレーティングシステムやライブラリの問題によると判明しています。ほとんどの場合、システムがまだ本稼働に入っていない場合の方がこれらの問題の修正がはるかに容易です。
このような問題を回避するには、可能性のある最悪の負荷でアプリケーション全体のベンチマークを行います。
複数のクライアントが同時にクエリーを発行して生成される高い負荷をシミュレートするには、mysqlslap プログラムが役立つ可能性があります。セクション4.5.7「mysqlslap — 負荷エミュレーションクライアント」を参照してください。
SysBench および DBT2 などのベンチマークパッケージを試してみることもできます。これは、http://sourceforge.net/projects/sysbench/ および http://osdldbt.sourceforge.net/#dbt2 で入手できます。
これらのプログラムやパッケージはシステムを破損させる可能性があるため、それらは開発システムでのみ使用するようにしてください。