gpt4 book ai didi

mysql - "DUPLICATE KEY"错误的原因?

转载 作者:行者123 更新时间:2023-11-29 02:33:41 25 4
gpt4 key购买 nike

MySQL复制出现“DUPLICATE KEY”错误的原因是什么?

我正在设置主-主复制。假设有两个master,master1和master2,数据一直插入master1。
我使用的查询是“INSERT INTO temp (temp_column2, temp_column3,...) VALUES ('XXX', 'YYY',...)”,其中 temp_column1 是 auto_increment 列。在我的设置中,两个守护进程将数据插入 master1 并且它正在创建重复键错误。

我不明白为什么会这样。大多数情况下,只要出现问题,重复键错误就是该行与其下一行之间的冲突。

例如:

#### on master1 ####
temp_column1, temp_column2, temp_column3, timestamp
Row1: 1 'XXX', 'YYY', 2011-12-28 12:00:00
Row2: 3 'AAA', 'BBB', 2011-12-28 12:00:00

#### on master2 (replication mysql instance) ####
temp_column1, temp_column2, temp_column3, timestamp
Row1: 1 'AAA', 'BBB', 2011-12-28 12:00:00

Row2: (Duplicate key error) when trying to insert row1 ('XXX', 'YYY')

因此,我正在更新 master2 中的 Row2 id 以修复复制。

为什么 DUPLICATE KEY 错误总是不断发生?有什么解决办法吗?是 mysql 错误吗?

最佳答案

mysql 中的复制不会尝试在数据库中的所有节点之间保持一致的状态。有集群解决方案尝试这样做,但通常 (IME):

  1. 需要在节点间传递大量的同步数据

  2. 因此通常要慢得多

  3. 当他们失败时,他们会失败

基本上,您应该始终假设每个节点上的 DML 操作之间会有不可预测的延迟。

您的问题似乎出现了,因为您允许在多个节点上进行插入,并且正在使用不带 setting the increment and offset 的自动递增字段适合于节点。

关于mysql - "DUPLICATE KEY"错误的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8656314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com