暂无图片
数据库监听表的数据变化,但不想用触发器和 listen notify,有其他成熟方案吗?
我来答
分享
暂无图片 匿名用户
数据库监听表的数据变化,但不想用触发器和 listen notify,有其他成熟方案吗?

数据库监听表的数据变化,但不想用触发器和 listen notify,有其他成熟方案吗?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
cdwas

除了使用触发器和Listen/Notify之外,还有其他一些成熟的方案可用来监听表的数据变化。以下是一些常见的方案:

  1. 1. 轮询查询(Polling Query):定期查询表中的数据,比较前后的数据差异来检测变化。可以使用定时任务或后台线程执行轮询查询。

  2. 2. 日志解析(Log Parsing):分析数据库的事务日志或二进制日志,从中提取和解析出表的数据变化信息。这需要对数据库日志格式和解析技术有一定的了解。

  3. 3. 版本控制列(Versioning Column):在表中添加一个用于记录数据版本或最后修改时间的列。每次数据变化时,更新版本或修改时间。通过定期查询该列的值变化来检测数据变化。

  4. 4. 外部消息队列(External Message Queue):使用消息队列系统(例如Kafka、RabbitMQ等),在数据变化时将相关信息发布到消息队列中。通过订阅消息队列的消费者来监听数据变化。

  5. 5. 变更数据捕获(Change Data Capture,CDC):一些数据库管理系统提供了CDC功能,可以捕获表中的数据变化,并将其记录在特定的日志表或数据源中。应用程序可以监听日志表或数据源以获取数据变化通知。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
数据库报错55019什么原因?
回答 1
数据库报错55019通常是由于表被锁了,执行下面的代码解表即可:CALLSYSPROC.ADMINCMD('reorgtable表名');
数据库中 sysdate( - 1) 是什么意思?
回答 1
已采纳
没有sysdate(1),只有sysdate1SQL>selectsysdatefromdual;SYSDATE2022101211:45:42SQL>selectsysdate1from
在shell脚本中$2 ~ /[0-9]是什么意思
回答 1
意思是如果第二列为数字就打印处理$2第二列模糊匹配[09]表示数字表示1个或者多个数字当然也可以这样写:awk'{if($2$20)print$2}'意思为:如果第二列等于第二列0,就是表示数字的意思
为什么数据库RAC集群一重启,ASM磁盘组的所属用户和组就都变成root,使用的udev link的方式绑定的磁盘?
回答 1
已采纳
那得看看你的多路径和UDEV的配置权限是怎么写的了。一般都是660grid:oinstall
如何快速定位存储过程中最耗时的节点
回答 1
什么数据库都没有说明,是oracle还是啥啊?
怎么样在数据库里面判断一个连接是不是长连接?
回答 2
已采纳
相对而言,短连接一般连接然后执行sql然后关闭了,长连接连接执行保持连接执行一直延续,现在更多应用层都是连接池机制,会缓存连接资源到连接池中不断重用,这个连接相对而言是长连接,主要是减小频繁的连接数据
redis内存占用
回答 1
已采纳
将Redis中的一个长度为200万的列表拆分为1000个长度为2000的列表,导致内存使用率增加了一半的原因可能如下:内存分配:在原始列表中,Redis会根据元素的大小分配足够的内存空间。当拆分为10
用kettle推送数据库数据会把数据库弄崩溃吗?
回答 3
已采纳
kettle作为一款etl的软件,我能想到的把数据库弄崩溃的场景是:1、kettle自身的bug 2、灌入大量数据,事务量太大,数据库crash 3、数据库自身bug。
数据库能做灰度吗?
回答 2
是实现哪方面的灰度呢?靠合理的设计运用是可以达到你需要的条件的。
达梦数据库中怎么用sp_close_session(sessid);不能结束会话?
回答 1
卡住了,到操作系统杀