重新使用已删除的MySql密钥

时间:2013-12-18 07:09:48

标签: mysql

每个人都说不要重复使用已删除的MySql密钥。例如。 Stack Overflow问题:I want to reuse the gaps of the deleted rows

我已经阅读了所有"专家"意见,但没有找到一个答案给出一个有效的理由,为什么不。每个人都只是问你为什么要"?

这里有一个很好的理由。如果我的用户可以选择输入网址mysite.com/person.php?id=123或网址mysite.com/person.php?id=123456789123,那么他们最喜欢哪一个?

所以任何人都可以告诉我为什么重新使用123会是一个坏主意?我实际上不是在谈论一条记录。我的记录以数千块的形式添加和删除。更新非常罕见,我是唯一进行更新的人。

也没有依赖关系。没有任何内容指向这些记录,因此其他表没有完整性问题。

当我想添加另一个记录块时,我将有一个简单的搜索例程,它搜索第一个未使用的记录密钥块,其大小足以容纳所有添加的记录。与硬盘空间使用方式大致相同。

1 个答案:

答案 0 :(得分:1)

密钥通常用作unique个标识符,如果再次使用,则stop是唯一的,并变为shared。这是不重用密钥的理念背后的逻辑。

所以我建议将用户的密钥和ID拆分为两个字段,将密钥键为唯一,id通过间隙查找功能使其“可选”。

在拆分之前,创建一个名为user-id的新列,并将用户的ID(目前是您的key)复制到该列。

然后使此列唯一,以防止意外重用id。

你自由地“回家”。