回答:
質問を理解している人はいないと思います(または理解しません)。DBに対するクエリを記録する必要はありません。むしろ、アプリケーションからのログはDBに送られます。ファイルの場合、ログを追跡できます。新しい行が追加されたときに出力されるように、テーブルをどのように調整しますか?
時間をかけて単調に増加する一意のフィールド(シーケンス番号など)がある場合、これを処理する単純なループを作成するのは難しくありません。
current_pos = select max(seq) from table
while true
new_pos = select max(seq) from table
if new_pos > current_pos
select * from table where seq > current_pos
current_pos = new_pos
endif
sleep 1
endwhile
私たちの多くはあなたの質問をよく理解していないようです。「ロギングデータベース」とはどういう意味ですか?これは標準のMySQL用語ではありません。
MySQL General Query Logを使用して、クライアントから受け取った各ステートメントをログに記録します。
その後、my.cnfでlog_output = TABLEを設定できます。ファイルは$ mysql_data_directory / general_log.CSVに書き込まれます。次のことができtail -f
、リアルタイムでクエリを表示するには、このファイルを。
末尾に追加するテーブルにタイムスタンプフィールドを追加することをお勧めします。これにより、簡単なクエリで非常に簡単に目的の結果を得ることができます。
これを試してみてください:
http://www.jetprofiler.com/blog/10/tail--f-table-with-myterm/#comments
それは古く、3年も触れられていません-しかし、私はそれを試してみましたが、うまくいきます。BZRリポジトリを複製し、READMEを読みます。