尝试通过多个批处理作业插入数据时,我遇到了数据丢失问题。
我们将10.1.21-MariaDB-1~jessie
版本与InnoDB作为默认存储引擎。
我遇到了以下情况:
虽然在数据库中的一条记录的生成的insert语句中存在值,但缺少列值。
表格自动递增的索引值显示数字170
,但实际记录计数为165
。所以这里有5条记录完全丢失了。
有人可以指导我解决此问题吗?
答案 0 :(得分:0)
案例1:您有5个特定行缺失的外部知识。需要更多信息来讨论这个。
案例2:COUNT(*)
表示165但SHOW TABLE STATUS
表示170“行”。不要相信STATUS
;这是一个估计。
案例3:你做了一堆INSERTs
,COUNT(*)
说150,SHOW CREATE TABLE
说AUTO_INCREMENT = 170
。这说明有些ID被“烧毁”了。所有类型的INSERT
语句(多行,IGNORE,IODKU,REPLACE,ROLLBACK等)都有烧录ID的方法。和它一起生活。如果您描述您的陈述,我们可以详细介绍。
答案 1 :(得分:0)
我的坏......没有这样的并发问题。在其中一个场景中,批处理作业正在删除一些记录。在正确的顺序作业链能够跟踪此问题后,这些作业执行不是连续的。