SQLクエリを本番環境でもログに記録するかどうかについてもジレンマがあります。
PHPでのファイルの書き込みがどれほど遅いかわかりません。おそらくいくつかのベンチマークがいくつかの答えを与える可能性がありますが、私はあなたたちが前にどう思うかを見たかったのです。
プロセスを遅くするものとしないものは何ですか?それとも、それは何に依存する可能性がありますか?
SQLクエリを本番環境でもログに記録するかどうかについてもジレンマがあります。
PHPでのファイルの書き込みがどれほど遅いかわかりません。おそらくいくつかのベンチマークがいくつかの答えを与える可能性がありますが、私はあなたたちが前にどう思うかを見たかったのです。
プロセスを遅くするものとしないものは何ですか?それとも、それは何に依存する可能性がありますか?
ほとんどのデータベースには、クエリと低速クエリをログに記録するための組み込みオプションがあるため、PHPを介してログを記録する必要はありません。問題が発生していて、トラブルシューティングプロセスの一部である場合を除いて、本番環境ですべてのクエリをログに記録しないでください。遅いクエリをログに記録して、本番サイトの速度を低下させている可能性があるものを確認できるようにする必要があります。
フレームワークがそれをサポートしている場合、ページの生成に一定の時間がかかった場合にのみクエリをログに記録できます(これが私が行うことです)。次に、条件付きでログを記録し、実行されているクエリの数が多すぎることに気付く場合があります。
いくつかのオプションがあります:
記録のために(DBを指定しなかった)、Postgresqlにはロギングに関連する一連のオプションがあります。その中で、log_min_duration_statementを使用して、N秒を超えて実行されたクエリをログに記録します。ログファイルを埋めたり、パフォーマンスを低下させたりすることなく、プロファイリングに役立ちます。ほとんどのデータベースには似たようなものがあるに違いありません。
さて、遅くなる一番のことは、dbを打つことによるディスクIOでしょう。最善の答えは、重要なケースで試してみて(nが小さい場合はすべてが高速であることを忘れないでください)、パフォーマンスが許容できるかどうかを関係者に尋ねることです。それはあなたが求めている答えではないかもしれませんが、それは本当に最良の答えです。