我有这样的问题。
我正在访问 新条目 表中目前有超过100,000个数据的数据库。
现在我想写一个监听器,意味着如果有任何新记录从其他地方插入到表中我必须得到通知。
我的问题是:什么是最好和最快的方法呢?因为有一天, 新条目 表中应该有大约500个新数据。是否适合每次使用线程检查数据库?
我正在使用Java来实现这一点。
请建议我。
答案 0 :(得分:1)
我不确定是否有任何侦听器存在Mysql更改。因此,获取这些细节并不是直截了当的。
但是mysql中有一个名为“The Binary Log”的东西,其中包含描述数据库更改的“事件”,例如表创建操作或对表数据的更改。
因此,跟踪更改的一种方法是轮询这些日志。挑战在于这些日志是以二进制格式编写的。 Mysql提供了一个名为mysqlbinlog的实用程序来以文本格式处理这些日志。
这是一个用于救援的java解析器,它可以读取mysql二进制日志:
https://github.com/tangfl/jbinlog
整合所有这些点点滴滴,你就可以得到你需要的东西。
答案 1 :(得分:0)
试试这个......
numero = stmt.executeUpdate(query, Statement.RETURN_GENERATED_KEYS);
查看JDBC Statement接口的文档。
答案 2 :(得分:0)
我使用java计时器类作为此解决方案的替代方案。现在它工作正常。它每10秒检查一次数据库,如果条件为真,它将执行我想要的。