悪いアプリケーションアーキテクチャ、悪いデータベース設計、悪いコードは常に非効率的に実行され、スケーラブルではありません。
それを邪魔にならないようにすると、ほとんどの「非常に需要の高い」目的は、解釈された言語のいずれかで提供できます-それらはそれらが行うことで最適化されていることを忘れないでください(たとえば、メモリを浪費しますが、通常、需要の高い使用でもかなり高速です) 。
私たちは本当の答えに到達すると言った:
データベース設計では、すべてのユースケースに完全なアプローチはありません。最高の読み取り速度を実現する方法と、最高の書き込み速度を実現する方法、および最高の柔軟性を実現する方法(ただし、読み取り速度と書き込み速度の両方を犠牲にする)でデータベースを構造化する必要がある場合があります。セクションには高い読み取り速度が必要な場合があり、別のセクションには高い書き込み速度が必要な場合があり、さらに別のセクションには高い柔軟性が必要な場合があります。
データベースの設計方法を考えて、「すべてのデータを収集するには、セッションでデータベースに300回接続する必要がありますか、それとも一度にすべてを読み取ることができる1つの大きなステートメントを記述できますか」と自問してください。簡単に達成できるのは、SQLストアドプロシージャを記述できるかどうかを考えてみてください。再び空になった場合は、構造を変更して(たとえば、柔軟性を犠牲にして)、ワンライナー読み取りまたはストアドプロシージャ読み取りを可能にするかどうかを考えてください。
いずれにせよ、PHPからMySQLへの多くの接続が1つのクエリを送信するということは、PHPがネットワーク経由でMySQLサーバーに接続し(ローカルであっても)、MySQLがリクエストを処理して回答などを提供します。送信する予定のすべてのステートメントを1つの文字列にバッチ生成できる場合は、それを1つの文字列にまとめることができますが、そうでない場合は、それらをより小さなバッチにグループ化することもできます。
上記のすべてが受け入れられない場合、または今日Cスクリプトを書くためのコツが本当にある場合(どうしても称賛に値する意図):
いくつかのUDF(ユーザー定義関数)を定義するCMySQLモジュールの作成を検討する必要があります。MySQLがデータを読み取っている時点で、行レベルのデータにアクセスでき、出力集計とそのすべてのジャズを処理できます。
ApacheモジュールまたはPHPモジュールを作成すると、MySQLモジュールとほぼ同じ形式でデータが配信されますが、処理はMySQLサーバー内で実行されず、MySQLにデータを要求し、処理してさらにデータを要求します。