0

我有这样的问题。

我正在访问一个数据库,该数据库当前在新条目表中有超过 100,000 个数据。

现在我想写一个监听器,这意味着如果有任何新记录从其他地方插入到表中,我必须得到一个通知

我的问题是:最好和最快的方法是什么?因为一天中新条目表中应该有大约 500 个新数据。是否适合每次使用线程检查数据库?

我使用 Java 和 MySQL 来做到这一点。

请给我建议。

4

3 回答 3

1

我不确定是否存在任何用于 Mysql 更改的侦听器。因此,获取这些详细信息并不容易。

但是在 mysql 中有一个叫做“二进制日志”的东西,它包含描述数据库更改的“事件”,例如表创建操作或表数据的更改。

因此,跟踪更改的一种方法是轮询这些日志。挑战在于这些日志是以二进制格式编写的。Mysql 提供了一个名为mysqlbinlog的实用程序来处理这些文本格式的日志。

这是一个用于救援的 java 解析器,它可以读取 mysql 二进制日志:

https://github.com/tangfl/jbinlog

整合所有这些点点滴滴,你也许能够得到你需要的东西。

于 2013-07-11T03:32:03.870 回答
0

我使用 java timer 类作为此解决方案的替代方案。现在它工作正常。它每 10 秒检查一次数据库,如果条件为真,它将执行我想要的。

于 2013-07-13T11:33:31.820 回答
0

试试这个...

numero = stmt.executeUpdate(query, Statement.RETURN_GENERATED_KEYS);

查看 JDBC Statement 接口的文档。

于 2013-07-11T04:04:17.183 回答