首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的新行神秘地消失了

问我的新行神秘地消失了
EN

Server Fault用户
提问于 2020-08-05 14:32:34
回答 1查看 574关注 0票数 1

我使用percona服务器5.7作为AWS上的数据库。问题是,有时一排排没有线索就神秘地消失了。我使用Node.JS的后端已经从自动增量中获得了插入id,但在此之后,行将消失而没有任何跟踪。这种情况有时会发生,但每天都会发生。我该怎么做才能开始诊断这些问题?

更多信息:有时我的自动增量会像从1000跳到1004,没有人从phpmyadmin或我的脚本中删除它,因为它是“用户”表。在1000到1004之间注册的时间,mysql和nodejs根本没有错误日志。但是,此时MySQL由于未知的原因遇到了一些表锁定问题,有时使insert语句成为排队事件,我根本不做alter或任何表级别的更改。

EN

回答 1

Server Fault用户

发布于 2020-08-06 17:10:12

您使用了MySQL事务、AUTO_INCREMENT和InnoDB/XtraDB吗?

您的Node.js MySQL驱动程序是否使用隐式事务?

如果是这样的话,您可能会受到InnoDB AUTO_INCREMENT序列间隔的影响。您可以看到docs 这里,但简而言之,

在所有锁模式(innodb_autoinc_lock_mode = 0、1和2)中,如果生成自动增量值的事务回滚,这些自动增量值将“丢失”。一旦为一个自动增量列生成了一个值,它就不能回滚,无论“插入类”语句是否完成,以及包含的事务是否回滚。这些丢失的值不被重用。因此,存储在表的AUTO_INCREMENT列中的值可能存在空白。

如果您偏执于删除的行,请使用general_log MySQL配置参数生成查询日志,然后根据缺少的行检查查询日志。请注意,查询日志可能很大,并且会对性能产生影响。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1028975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档