请问 时间戳 增量同步 如何防止记录跳过?求 sql

2015-07-04 00:38:59 +08:00
 qq2549112

我需要实现 基于时间戳 来实现增量同步 功能

但我发现,这样有一定几率 出现 丢数据的可能性

网上我也搜了一些文章查看了 还是有些不知所措

参考文章 http://www.cnblogs.com/siqi/p/4316992.html

想问下各位前辈, 有更好的方案吗

求sql

2912 次点击
所在节点    问与答
4 条回复
Septembers
2015-07-04 01:04:56 +08:00
see http://deltasql.sourceforge.net/
刚刚搜索 delta sync 看到的 或许对你有用
gamexg
2015-07-04 08:02:16 +08:00
逻辑合理就没问题。

每次先取目的表最新的时间戳A获得上次更新的位置,
然后取源表时间戳<b>大于等于</b>时间戳A的记录,使用时间戳升序排序,可以随意 limit 。
不要改变顺序,即先处理最旧的循环处理每一条记录即可。

这样的逻辑任意时间中断接着重新执行也不会丢失数据,缺点是在每次更新时会重复处理时间戳=A的的记录,所以需要目标表用主键或添加唯一索引等来保证不会重复。

虽然将第二步改成<b>大于</b>可解决重复的问题,但是有可能丢失时间戳相同的记录。
qq2549112
2015-07-04 12:14:34 +08:00
@gamexg 谢谢 我再研究 研究
qq2549112
2015-07-04 12:14:39 +08:00
@Septembers 谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/203212

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX