尝试通过多个批处理作业插入数据时,我遇到数据丢失问题。
我们有 10.1.21-MariaDB-1~jessie
版本,以 InnoDB 作为默认存储引擎。
我遇到过以下情况:
尽管为数据库中的一条记录生成的插入语句中存在值,但缺少列值。
表自动递增索引值显示数字170
,但实际记录数为165
。所以这里5条记录全部丢失了。
有人可以指导我解决这个问题吗?
最佳答案
情况 1:您从外部得知缺少 5 个特定行。需要更多信息来讨论这个问题。
情况 2:COUNT(*)
表示 165,但 SHOW TABLE STATUS
表示 170“行”。不要相信STATUS
;这是一个估计。
情况 3:您执行了一堆 INSERT
,COUNT(*)
表示 150,SHOW CREATE TABLE
表示 AUTO_INCRMENT = 170.
.这表示某些 ID 已被“烧毁”。所有类型的 INSERT 语句(多行、IGNORE、IODKU、REPLACE、ROLLBACK 等)都有烧毁 id 的方法。忍受它。如果您描述您的陈述,我们可以进一步详细说明。
关于mysql - Maria-db并发插入数据丢失问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45181989/