同步数据涉及到的一些思考及解决

[size=large]项目需求:数据库由于业务需要,相关表数据不一致,需要同步[/size]
[list]

[size=medium]
设计到的问题-->>
[1]同步的记录表数据由触发器来控制还是程序?

[2]什么时候做同步?

[3]数据量大的情况如何处理?

[4]同步时候标志已经操作过的数据,下次操作的时候方便操作,此sql操作会涉及大量数据,怎么效率较好?[/size]
[/list]
[size=medium]
[list]

[*]第一个问题解决:触发器简单直接,不需要程序里面写很多东西,但是触发器一多貌似不是什么好事

[*]第二个问题解决:什么时候同步可以由cron表达式和job来控制,但是你的代码必须复杂一点。

[*]第三个问题解决:数据量大,每次处理数据分页取,分页处理,那么此时跟分页的原理一样,每次记录当前处理的条数,然后一次处理多少条,多少条你可以随便指定(类似每页显示多少条),根据你数据库的性能和系统资源。

[*]第四个文件解决:标志一般利用时间,但是主键是自增长的话,为什么要去每次记录时间去比较呢?用id不是更好吗?每次操作取出上次操作的最后一条数据的id,再查询当前数据库最大的id数是多少,此时就形成了一个id区间,那么你的程序接下来就运行在这个id区间中,每次区也是在这个id区间取,如果数据量大,id区间每次指定一定范围,把大区间划分成n个小区间去处理。标志什么也省了,操作完数据我记录他的id,不需要在更新数据库里面的标志,更新标志就属于不好的设计。


[/list]
两天时间就从思考到实现,解决了以上问题,我的tomcat源码,solr教程 struts2源码还没时间看了,明天得看啊,等不及了,但今天实在没精力了
[/size]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值