0

我发现自己对所有行标识列都使用了“bigint”(64 位整数),这不是因为我希望表中的行数超过 32 位整数的最大值,而是因为不断添加和删除随着时间的推移,行可能会导致标识值超过 32 位整数,我理解这会导致溢出错误并阻止后续插入语句成功。

除了添加特殊逻辑以定期“碎片整理”或重新设置身份列之外,是否有任何解决方法?还是我应该继续使用“bigint”以确保安全?它甚至安全吗?

根据我的计算,我的桌面需要大约 1826 年才能在紧密/无限循环中将整数从 0 增加到 2^64,更不用说插入和删除那么多数据库行了。再说一次,一台比我的电脑快一千倍的电脑可以在一两年内完成。这可能是使用 128 位唯一标识符作为数据库行键的好案例吗?

4

0 回答 0