在实践中,一些应用程序或模块需要实时获取某些数据库表的增删改变动数据。
对此需求,常见的方案有:
1、应用程序通过轮循查询数据库方式获取数据库表的增删改变动数据.
2、应用程序在把数据写入数据库表之前,通过事件方式向外通知数据库表的增删改变动数据.
以上两种方案各有优势,但也存在一些明显的缺点。
第一种方案的优势是实现简单,但对数据库的访问压力大,影响数据库性能。
第二种方案的优势是实时性强,对数据库访问压力小,不影响数据库性能,但实现复杂,过分高耦合,不方便进行系统扩展。
对于以上情况,为了解决以上问题,本文提出了一种数据库系统主动对外推送表的增删改实时变动数据的实践。具体实现如下:
1、在数据库中新建一个推送摘要表,其表结构如下
2、在每个要实时推送增删改数据的数据库表上新建触发器,以下为某张表的示例触发器脚本代码
3、开发一个数据库系统后台伴侣服务程序,为了说明实现思路,使用以下伪代码进行介绍
4、应用程序增补一个接收数据库表增删改变动数据的实时监听模块,通过获取到的推送摘要表数据到数据库获取所对应的具体表的数据.
以上只是初略介绍了一些实现,具体实践中还需继续完善,如以上第二步中的新建触发器,就要做好异常抓获、是否启用等处理,以适应生产环境的要求。