【发布时间】:2017-10-05 14:48:52
【问题描述】:
我有一个用例,其中我的数据存在于 Mysql 中。
对于 Mysql 中的每个新行插入,我必须对新数据执行分析。
我目前解决这个问题的方法是:
我的应用程序是一个 Spring-boot 应用程序,我在其中使用了 Scheduler 来检查数据库中输入的新行每 2 秒后强>。
当前方法的问题是:
即使 Mysql 表中没有可用的新数据,Scheduler 也会触发 MySQL 查询以检查是否有新数据可用。
在触发器中解决任何 SQL 数据库中此类问题的一种方法。
但到目前为止,我未能成功创建 Mysql 触发器,它可以调用基于 Java 的 Spring application 或简单的 java 应用程序。
我的问题是:
他们有更好的方法来解决我的上述用例吗?如果它们是为这种类型的用例构建的,即使我愿意更改为另一个存储(数据库)系统。
【问题讨论】:
-
您是否对插入数据的应用程序进行了控制?
-
恕我直言,数据库的工作不是担心 x 数量的消费者如何使用它的数据。您当前的实现很好,但如果您正在寻找一个“触发器”,为什么不在您的应用程序中寻找它,在您开始插入新数据时呢?如果您需要实时和响应式的东西,您可以查看消息传递?
-
您的 Spring 存储库是数据更改的唯一来源,还是您实际上有其他应用程序可能会弄乱您的数据?
-
插入是由远程服务器完成的,我对此没有任何控制权。
-
在这种情况下,除了阅读 mysqlbinlog 外,您别无选择,这将与您已经在执行的过程相同,例如在特定时间间隔后阅读,但您拥有的唯一优势这一次你不会因为执行大量不必要的查询而伤害 mysql。
标签: java mysql spring spring-batch real-time