0

我有一个 mariaddb galera 集群(3 个多主控),需要进行大批量插入。我见过和使用的最快的方法是通过加载数据本地 infile。该表的类型为 INNODB

当我要插入的表具有一个具有自动增量值的主键时,此方法有效。

但是,由于我将主键更改为基于 3 列(日期、凭证编号和类型)的唯一键,其中凭证编号和日期可以相同但类型不同。这不再有效。

在 php 中,错误返回是关于数据包乱序的,不是很有帮助。直接通过mysql运行,返回错误为:

ERROR 1213 (40001):尝试获取锁时发现死锁;尝试重启事务

搜索这个并没有提供一个明确的答案,但我怀疑这是因为多主集群通常使插入唯一,因为插入 auto_increment 和 auto_increment_offset 以及由覆盖集群管理器管理的集群节点号。 http://codership.blogspot.nl/2009/02/managing-auto-increments-with-multi.html

我认为 LOAD DATA INFILE 只能使用具有自动增量的主键。

但我不确定,因此这个问题可以确认这一点或帮助我通过其他参数解决问题。

非常感谢您的帮助。

4

0 回答 0