【问题标题】:is it possible to using last id where it's deleted mysql?是否可以在删除mysql的地方使用最后一个ID?
【发布时间】:2021-02-06 05:12:37
【问题描述】:

所以我对这个问题有同样的问题Auto Increment after delete in MySQL

根据该答案,并考虑到该答案提供的每个条件,我不得不说我必须在 mysql 上删除后进行自动增量。

我有桌子可以说

table : product
fields : id, name

所以如果我的 id 为 16、17、18,然后我删除了 id 16,然后我制作了新的,我想让新的 id 在“16”上而不是在 19 上。根据那个答案

Take a step back and ask "why you need to recycle key values?" Do unsigned INT (or BIGINT) not provide a large enough key space?

我必须说是的,字段可能无法提供足够大的键空间

我该怎么办

注意:该表上的 id 是唯一的,并且没有连接到任何其他表,我只是想避免如果 id 不能再次提供足够大的键空间

【问题讨论】:

  • 别这样。
  • 这看起来是进入兔子洞的好主意......
  • 那么最好的解决方案是什么?我真的要把id的类型从int(10)改成bigint吗?
  • 如果你真的达到了 20 亿个产品,你将完全面临其他问题,比如性能扩展等
  • 另外,注意 INT 声明后面括号中的数字几乎完全没有意义

标签: mysql auto-increment


【解决方案1】:

如何实现?

说实话,这个是可以实现的按数据库)。

值得吗?

我假设你的主键是id,它是 mysql 中的一个聚集索引。所以这种方式可能会导致更多的页面拆分,这会降低插入性能。
并且需要保证有序队列中的id只能被一个插入线程同时消费。如果插入失败,需要重新入队id。如果有序队列的大小过大,排序操作也会降低性能。
最后,您不能依赖 id 进行分析。例如。 id 最大的记录为最新记录。

【讨论】:

  • '值得做吗?'没有。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多