問題の答えは、データベース内の適切なフィールドのインデックス作成にある可能性があります。ほとんどのデータベースは、頻繁に提供されるクエリもキャッシュしますが、通過するテーブルが変更されると、それらを破棄する傾向があります。(これは理にかなっています)
したがって、データベースを信頼して、データベースがうまく機能することを実行できます。データのクエリと取得を行い、テーブルでの競合がほとんどないことを確認したり、適切なインデックスを配置したりすることで、データベースを支援します。ただし、これにより書き込みのパフォーマンスが変わる可能性がありますが、これはあなたの場合は重要ではない可能性があり、実際に判断できるのはあなただけです。(インデックスを計算して保持する必要があります)。
速度が重要な場合は、使用するPHP拡張機能も役割を果たします。「アップグレード」をmysqliまたはpdoに実行し、-> fetch_all()を実行します。これにより、phpプロセスとデータベースサーバー間の通信が削減されます。これに対する唯一の理由は、クエリするデータの量が非常に多いために、php / webserverプロセス、さらにはサーバー全体を強制的にスワップさせて停止または停止させる場合です。
使用するテーブルタイプは重要な場合があります。特定のタイプのクエリは、INNODBとは対照的にMYISAMでより高速に実行されるようです。少しツールを変更したい場合は、このデータ(またはそのコピー)をmysqlのHEAPエンジンに保存して、メモリに保存することができます。変更されたデータを確実に保持したい場合でも、書き込み時にディスクテーブルと同期するように注意する必要があります。(サーバーの障害またはシャットダウンの場合に備えて)
または、 memcacheのようなものに、またはapc_storeを使用してデータをキャッシュすることもできます。これは、phpプロセスメモリにあるため、非常に高速です。ここでの大きな注意点は、APCのストレージに使用できるメモリが一般的に少ないことです(デフォルトは32MBです)。Memcacheの大きな利点は、高速でありながら分散されているため、複数のサーバーを実行している場合、このデータを共有できることです。
nosqlデータベースを試すことができます。できれば、 redisなどのドキュメントストアではなく、単なるキーストアであるデータベースを試してみてください。
そして最後に、phpスクリプトに値をハードコーディングし、eacceleratorやAPCなどを使用して、本当に4回使用する必要があるかどうか、または実際に作成したものの出力をキャッシュできないかどうかを確認します。それと。
申し訳ありませんが、既成の回答を提供することはできませんが、パフォーマンスに関する質問は、該当する場合、通常、多面的なアプローチが必要です。:-|