首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对auto_increment in MySQL InnoDB的关注

对auto_increment in MySQL InnoDB的关注
EN

Database Administration用户
提问于 2019-05-28 07:54:34
回答 1查看 67关注 0票数 0

我正在开发和实现CFR第11部分兼容系统。在每个表中,我创建一个主键,用于审计跟踪。我实现在创建、更新和删除操作时触发的触发器。

我在MySQL DaaS上与InnoDB engine一起使用JawsDB 5.7。

几天前,我看到了以下文章:https://desmart.com/blog/be-careful-with-mysql-s-auto_增量-我们如何结束-失败-数据

作者对auto_increment机制在MySQL中的应用也表示了关注。以下是一个简单的问题:

  1. 您可以使用auto_increment PK创建10条员工记录(让我们称之为"recordID")。系统将recordID号码从1分配到10。
  2. 员工"9“在系统中做一些事情,他的行为用他的recordID记录在审计跟踪表中。
  3. 员工9和10被删除。删除2条最后记录(9条和10条)
  4. 重新启动MySQL服务器
  5. 插入新记录,DB系统就会分配新插入的记录的recordID值"9“。

问题是我们已经对审计跟踪表中的recordID "9“进行了审计跟踪。

以下是我的问题:

  1. 你见过这种情况吗?
  2. MySQL 5.7是否受到错误的影响?我是否应该升级到8.0,因为这里说错误是在8.0中修复的?
  3. 你有什么建议来降低风险吗?我再选一台DB引擎好吗?MyISAM?
  4. 如果删除了最后一条记录,是否有任何方法确保auto_increment不按顺序递增?
EN

回答 1

Database Administration用户

发布于 2019-05-28 10:55:56

不要删除需要保留逻辑排序规则的记录。与其标记删除员工,不如将其标记为已终止,将行保留在那里。否则,您将有一个审计记录,而不知道它对应的也。

选项b),对于审核记录,如果有必要,为员工创建一个影子表,对其进行去denormalize。审核应反映员工发生时的记录。

不,你不应该使用MyISAM。

MySQL8.0随着手册声明(重要决策应该考虑的主要来源)而改变行为。如果有疑问,就试一试。

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

https://dba.stackexchange.com/questions/239185

复制
相关文章

相似问题

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