LAMP (Debian/PHP/MySQL) サイトのデータベース アクティビティをログに記録するという問題に直面しています。
これは、たとえば「誰が何をしたか」を知るために、すべてのクエリが起動されたユーザーのコンテキストでログに記録されることを望んでいるという事実によって複雑になります。MySQL のロギング機能について十分な情報を得ていないことは認めますが、特定のシナリオに関する情報を見つけるのに問題があります。
これで、クエリを実行してログ テーブルに記録するmysql_query()
代替手段が実装されました(PDO とプリペアド ステートメントを使用したコードの書き換えが進行中です!) 。INSERT DELAYED
問題は、簡単に予測できるように、ログ テーブルが数百万行に達し、そのうちの最も古い行がまったく役に立たないことです。その他の問題は、必要なクエリごとに 2 つが実行されることです。SELECT
部分的な解決策は、 sをログに記録しないことです。
別の解決策は、派手なログローテーションと gzip などを使用してテキストファイルにログオンすることです。しかし、クエリが実行されたユーザー コンテキストを知るにはどうすればよいでしょうか。
ログに記録されたユーザーもログに記録し、パフォーマンスを認識するクエリロガーを実装した人はいますか?