アプリケーションのパフォーマンスに影響を与える変数は多数あります。PHP が問題であるとすぐに思い込まないことをお勧めします。
まず、どのように PHP を提供していますか? Apache または IIS 自体の基本的な最適化を試しましたか? サーバーは他の種類のリクエストの処理でビジーですか? PHP コード アクセラレータを利用したことがありますか。サーバーがボトルネックになっているかどうかをテストする 1 つの方法は、アプリケーションを別のサーバーで実行してみることです。
次に、アプリケーション全体のパフォーマンスが遅いですか、それとも特定のページだけに影響しているように見えますか? これにより、パフォーマンスの分析を開始する場所がわかります。アプリケーション全体が遅い場合は、基盤となるサーバー/プラットフォーム、またはすべての要求の一部であるグローバル SQL クエリ (ユーザー認証など) に問題がある可能性が高くなります。
3 番目に、SQL クエリの数を最小限に抑えることについて言及されましたが、既存のクエリの最適化についてはどうでしょうか。MySQL を使用している場合、各ストレージ システムのさまざまな長所を活用していますか? 最も重要なクエリに対してEXPLAINを実行して、適切にインデックスが作成されていることを確認しましたか? これは、大きなテーブルにアクセスするクエリでは重要です。データセットが大きくなればなるほど、不十分なインデックス作成の影響に気付くことになります。幸いなことに、この記事のように、EXPLAIN の使用方法を説明する記事がたくさんあります。
第 4 に、よくある間違いは、データベース サーバーがシステムで利用可能なすべてのリソースを自動的に使用すると思い込むことです。データベース アプリケーションに十分なリソースが明示的に割り当てられていることを確認する必要があります。たとえば、MySQL では、キー バッファー、一時テーブル サイズ、スレッド同時実行数、innodb バッファー プール サイズなどのカスタム設定を (my.cnf ファイルに) 追加する必要があります。
上記のすべてを再確認してもボトルネックが見つからない場合は、Xdebug などのコード プロファイラーが役立ちます。個人的には、Zend Studio プロファイラーの方が好みですが、Zend Platform スタックの残りの部分を既に利用していない限り、最適なオプションではない可能性があります。ただし、私の経験では、PHP 自体がパフォーマンス低下の根本的な原因であることは非常にまれです。多くの場合、コード プロファイラーは、どの DB クエリが原因であるかをより正確に判断するのに役立ちます。