mysql - 使用标识编号系统在数据库之间映射记录

标签 mysql replication synchronization

我有 2 个数据库,一个 mySQL 数据库和一个 SQLite,它们来回同步以维护相同的数据。为了防止两边重复,我正在考虑为记录建立一个识别编号系统,但我不确定我将如何去做?

我需要以某种方式为两个数据库上的记录创建一个唯一的 ID,例如:

mySQL ===> 数据 = 1, 5 id=???

sqLITE===> 数据 = 1, 5 id=???

我需要ID相同,所以当我同步时它不会传输到其他数据库。

我想到的另一种方法是在数据库中的两列之间创建哈希,如果相同的数据位于另一台服务器上,则它不会同步该数据记录。

使用数据库表的列作为唯一标识符不适合我的情况。

我真的不知道如何解决这个问题,所以任何帮助都会很棒,谢谢!

最佳答案

我理解这个问题的方式是,您需要以某种方式确定两个不同 SQL 数据库中的两行是否相同,要么是因为它们是独立创建的,要么是因为较早的同步。

我认为你关于哈希值的想法很好。它应该可以解决问题。但是,您也可以仅连接字符串中的列值并获得相同的结果,如果您有多个数据列,这些数据列可能会变得不明确(“12-2”和“1-12”是然后不同)

但是您仍然需要发送生成的哈希值或所有行的串联字符串才能同步。也许跟踪已经同步的行有意义?但是,如果发生行数据值更新,您可能需要取消跟踪它们。

我不确定这个答案对您是否有帮助,因为这个问题留下了很多值得猜测的地方。我可以建议更清楚地说明您想要实现的目标吗?

关于mysql - 使用标识编号系统在数据库之间映射记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15908357/

相关文章:

c - 增量同步原语

mysql - 是否有可能在 Rails 中从 MySQL 关闭中解救出来?

c# - 具有 LinQ 相关查询的 MySQL Entity Framework 未执行

cassandra - 增加复制因子对cassandra性能的影响

c# - C#异步调用同步服务调用的策略

java - 在一个线程添加项目而一个线程删除项目时同步最大值

MySQL 事件 - 性能和限制

返回过去 24 小时内添加的所有行的 MySQL 查询

mysql - 同一服务器上两个数据库之间的镜像

mysql - binlog_format = STATEMENT 和 CURRENT_TIMESTAMP 与 MySQL 复制