我有一个场景:我们有一个大表(它被分成几个小表),我想使用触发器来跟踪更改。如果大表有插入、更新和删除事件,我们将向跟踪表插入行。我需要构建一个 Java 应用程序来连续检查跟踪表,看看是否还有行,将它们取回,进行一些计算,更新缓存并删除它们。
我的问题是最有效的实现方法是什么?
一些担忧:
- 持续检查数据库不太好。也许每次睡一秒钟?
- 跟踪表中的某些行可以按 ID 分组在一起。我们每次只需要处理不同的ID。
- 需要限制返回行数,一次可能为 200 行。
最佳答案
这听起来像是您正在尝试在数据库中实现队列。 JMS 可能是更好的选择。
您可以定期轮询表以查找条目。如果 ID 必须组合在一起,我假设您需要某种方式来了解 ID 是否完整。
如果您的 IDS 大小不断增加,您可以在查询中包含接下来的 200 个 ID。例如WHERE id < {id-up-to} + 200
关于Java应用程序不断检查表中添加的新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9662440/