我有一个表定期暴露于大型插入和删除(因此在主 id 列的数字序列中有很大的差距)。它有一个“int”类型的主 id 列,该列已更改为“bigint”。尽管发生了这种变化,这种数据类型的限制也将不可避免地在未来的某个时候被超过(目前的使用情况表明明年左右会出现这种情况)。
您如何处理这种情况?我想知道(震惊)我是否甚至需要主键列,因为它没有在任何查询中以任何明显的方式使用或被其他表等引用。删除该列是一个解决方案吗?或者这种行为会让你厌恶地被 mysql 社区开除?!
我们的自动增量 ID 已经接近 5 亿大关。该表将与文件数据关联的关键字保存在单独的表中。每个文件数据行在关键字表中可能有多达 30 个与之关联的关键字,因此在您不断插入和删除数以万计的文件之后,它们才真正开始堆积起来。目前,关键字表包含关键字和与之关联的文件的 id,所以如果我去掉当前的主 id 列,除了关键字 (varchar) 和文件 id (int) 字段组合之外,将没有唯一标识符,这将是一个糟糕的主键。
非常感谢所有想法/答案/经验/解决方案。