Maria-db并发插入数据丢失问题

时间:2017-07-19 05:54:37

标签: mysql sql concurrency mariadb innodb

尝试通过多个批处理作业插入数据时,我遇到了数据丢失问题。 我们将10.1.21-MariaDB-1~jessie版本与InnoDB作为默认存储引擎。

我遇到了以下情况:

虽然在数据库中的一条记录的生成的insert语句中存在值,但缺少列值。

表格自动递增的索引值显示数字170,但实际记录计数为165。所以这里有5条记录完全丢失了。

有人可以指导我解决此问题吗?

2 个答案:

答案 0 :(得分:0)

案例1:您有5个特定行缺失的外部知识。需要更多信息来讨论这个。

案例2:COUNT(*)表示165但SHOW TABLE STATUS表示170“行”。不要相信STATUS;这是一个估计。

案例3:你做了一堆INSERTsCOUNT(*)说150,SHOW CREATE TABLEAUTO_INCREMENT = 170。这说明有些ID被“烧毁”了。所有类型的INSERT语句(多行,IGNORE,IODKU,REPLACE,ROLLBACK等)都有烧录ID的方法。和它一起生活。如果您描述您的陈述,我们可以详细介绍。

答案 1 :(得分:0)

我的坏......没有这样的并发问题。在其中一个场景中,批处理作业正在删除一些记录。在正确的顺序作业链能够跟踪此问题后,这些作业执行不是连续的。