Database 是否可以侦听关系数据库更新?

Database 是否可以侦听关系数据库更新?,database,listener,relational-database,change-notification,Database,Listener,Relational Database,Change Notification,是否可以侦听关系数据库更新?例如,我的web应用程序希望通过Comet技术向客户端发送数据更新。我可以让程序定期轮询数据库,但这不会有性能和可扩展性 若应用程序可以访问数据库的“事件处理程序”,那个么每次更新给定的数据库表数据时,应用程序都可以收到通知。这听起来更有希望,但我没有找到任何具体的例子。这是侦听器模式 公共关系数据库是否支持这种功能?MS SQL Server自2005年以来就有查询更改通知。以下是有关如何使用该功能的更多信息: 我认为,甲骨文从10g版开始就有了这一功能。以下是更多

是否可以侦听关系数据库更新?例如,我的web应用程序希望通过Comet技术向客户端发送数据更新。我可以让程序定期轮询数据库,但这不会有性能和可扩展性

若应用程序可以访问数据库的“事件处理程序”,那个么每次更新给定的数据库表数据时,应用程序都可以收到通知。这听起来更有希望,但我没有找到任何具体的例子。这是侦听器模式


公共关系数据库是否支持这种功能?

MS SQL Server自2005年以来就有查询更改通知。以下是有关如何使用该功能的更多信息:

我认为,甲骨文从10g版开始就有了这一功能。以下是更多信息:


我不知道有任何其他常见的RDBMS支持这一点。

它肯定是非标准的,所以一般来说答案是否定的。一些数据库(Oracle、SQL Server)已经提出了专有的解决方案(就像许多其他情况一样,SQL标准在某些情况下受到严重限制)

不过,最后还是投票。很抱歉数据库无法将事件转发给应用程序

对于SQL Server,更改通知将是SQL Server上的消息队列中的一个条目(使用SQL Server message broker),您仍然需要轮询该队列

也就是说,可以使用“长轮询”——您启动一个separae线程,请求数据库进行下一次更改。。。。阻塞(等待)直到它发生

使用

WAITFOR (RECEIVE * FROM MyQueue);
语法风格。请求将被阻止,直到基本上收到某个内容为止

现在,如果您使用MySQL这样的“通用”数据库,我想您已经完成了。例如:没有支持。这绝对是一个高端企业时代。

你可以看看