MySQL有没有一种机制,当某些数据更新时,通知连接到MySQL的应用程序? MySQL有没有一种机制,当某些数据更新时,通知连接到MySQL的应用程序,而不需要应用程序循环查询这些数据的情况? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 mysql不会实现这种机制的,应用始终是数据的读写方,消息驱动只能由应用发起。 SQLServer 可以用 SqlDependency 。MySQL 只能自己加触发器, 将相关信息放到自己定义的日志表里面, 轮询日志表来实现了。 sql server 的 SqlDependency 实现也最终是用的轮询 SqlDependency 是事件通知吧, 至少用起来没看到有轮询。具体的内部实现就不知道了。 SqlDependency 是事件通知吧, 至少用起来没看到有轮询。具体的内部实现就不知道了。轮询的,它是通过 Service Broker 做的,轮询的是 Queue, 可以通过 PROFILER 看到轮询的请求,事务通知是从组件中发出,不是从数据库服务器触发 SqlDependency 是事件通知吧, 至少用起来没看到有轮询。具体的内部实现就不知道了。轮询的,它是通过 Service Broker 做的,轮询的是 Queue, 可以通过 PROFILER 看到轮询的请求,事务通知是从组件中发出,不是从数据库服务器触发佩服, 研究得好深入 数据库肯定没有,你要自己实现,大项目不会做立即持久化而是把操作都在缓存中进行然后批量提交操作到一个事物,这属于直接在程序中做事物控制,这时候你就可以在事物中增加事件的机制,比如.net中有dataset这个类型可以缓存数据库数据和各种数据库操作,而且这个类型还有很多事件,什么行改变事件啦行删除事件啦等等,但凡这种通知的操作必定都是在程序中作最好,就算是触发器都不推荐用,因为触发器可能会引起一些级联的反应,而且触发器的通知只限于数据库内而不会通知应用程序 SqlDependency 在 SQL Server 2005 之前版本的实现,是用触发器+轮询实现,你也可以考虑一下这种方法:1. 所有要数据通知的表上建立触发器,在数据变化时,将数据变化的主键写和表名写入一个记录表2. 程序轮询这个记录表,如果有检查到数据变化,则触发事务通知变化的记录表名和id这样触发器简单,开销小,轮询不在业务表上进行,也避免了一些不必要的影响 另外一种可选的办法是研究 MySQL 的 binlog,自己写程序把自己伪装成 slave , 从数据库拉 binlog 获取数据变化阿里有一个类似的东东,如果你的开发功底深厚,可以借鉴http://agapple.iteye.com/blog/1796633 MySQL 里没有PostgreSQL有此功能, 在服务器层有 LISTEN / NOTIFY 语句 , 同时我改写了PSQLODBC, 在ODBC中封装NOTIFY/LISTEN , 在C/S结构中完美支持此功能可参考 我的bloghttp://blog.csdn.net/trainee/article/details/1567565 菜鸟求助 求一个SQL 怎么写 这查询语句怎么出错啊 mysql不能正确的使用 联合索引 mysql自动增加字段必须是什么类型呢? 这种查询如何做,效率如何? Xtrabackup 不支持mysql5.0吗 mysql中,AND 后能加 IF 判断吗 遇到一个问题,在网上搜没找到合适的,想来这里问问看有没有大神给解决下 My Sql数据库求教大佬 mysql空间索引计算面积得到负值 mysql 获取最近半年内每个月最后一条上传的记录
MySQL 只能自己加触发器, 将相关信息放到自己定义的日志表里面, 轮询日志表来实现了。
轮询的,它是通过 Service Broker 做的,轮询的是 Queue, 可以通过 PROFILER 看到轮询的请求,事务通知是从组件中发出,不是从数据库服务器触发
轮询的,它是通过 Service Broker 做的,轮询的是 Queue, 可以通过 PROFILER 看到轮询的请求,事务通知是从组件中发出,不是从数据库服务器触发
佩服, 研究得好深入
1. 所有要数据通知的表上建立触发器,在数据变化时,将数据变化的主键写和表名写入一个记录表
2. 程序轮询这个记录表,如果有检查到数据变化,则触发事务通知变化的记录表名和id
这样触发器简单,开销小,轮询不在业务表上进行,也避免了一些不必要的影响
阿里有一个类似的东东,如果你的开发功底深厚,可以借鉴
http://agapple.iteye.com/blog/1796633
PostgreSQL有此功能, 在服务器层有 LISTEN / NOTIFY 语句 , 同时我改写了PSQLODBC, 在ODBC中封装NOTIFY/LISTEN , 在C/S结构中完美支持此功能
可参考 我的blog
http://blog.csdn.net/trainee/article/details/1567565