0

このような問題があります。

現在、新しいエントリテーブル に 100,000 を超えるデータがあるデータベースにアクセスしています。

ここで、リスナーを作成したいと思います。つまり、新しいレコードが別の場所からテーブルに挿入された場合、通知を受け取る必要があります。

私の質問は次のとおりです。これを行うための最善かつ最速の方法は何ですか? 1 日に約 500 個の新しいデータが新しいエントリテーブルにあるはずだからです。スレッドを使用するたびにデータベースをチェックするのに適していますか?

MySQLでこれを行うためにJavaを使用しています。

私に助言してください。

4

3 に答える 3

1

Mysql の変更に対して存在するリスナーがあるかどうかはわかりません。したがって、これらの詳細を取得するのは簡単ではありません。

しかし、mysql には「 The Binary Log 」と呼ばれるものがあり、テーブル作成操作やテーブル データの変更など、データベースの変更を記述する「イベント」が含まれています。

したがって、変更を追跡する 1 つの方法は、これらのログをポーリングすることです。問題は、これらのログがバイナリ形式で書き込まれることです。Mysql には、これらのログをテキスト形式で処理するためのmysqlbinlogというユーティリティが用意されています。

これは、mysql バイナリログを読み取ることができる、レスキュー用の Java パーサーの 1 つです。

https://github.com/tangfl/jbinlog

このすべての断片を統合すると、必要なものを手に入れることができるかもしれません.

于 2013-07-11T03:32:03.870 に答える
0

このソリューションの代替として、Javaタイマークラスを使用しました。今では正常に動作します。10秒ごとにデータベースをチェックし、条件が真の場合、必要なものを実行します。

于 2013-07-13T11:33:31.820 に答える