我需要实现 基于时间戳 来实现增量同步 功能
但我发现,这样有一定几率 出现 丢数据的可能性
网上我也搜了一些文章查看了 还是有些不知所措
参考文章 http://www.cnblogs.com/siqi/p/4316992.html
想问下各位前辈, 有更好的方案吗
求sql
1
Septembers 2015-07-04 01:04:56 +08:00 1
see http://deltasql.sourceforge.net/
刚刚搜索 delta sync 看到的 或许对你有用 |
2
gamexg 2015-07-04 08:02:16 +08:00 1
逻辑合理就没问题。
每次先取目的表最新的时间戳A获得上次更新的位置, 然后取源表时间戳<b>大于等于</b>时间戳A的记录,使用时间戳升序排序,可以随意 limit 。 不要改变顺序,即先处理最旧的循环处理每一条记录即可。 这样的逻辑任意时间中断接着重新执行也不会丢失数据,缺点是在每次更新时会重复处理时间戳=A的的记录,所以需要目标表用主键或添加唯一索引等来保证不会重复。 虽然将第二步改成<b>大于</b>可解决重复的问题,但是有可能丢失时间戳相同的记录。 |
4
qq2549112 OP @Septembers 谢谢
|