每个人都说不要重复使用已删除的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会是一个坏主意?我实际上不是在谈论一条记录。我的记录以数千块的形式添加和删除。更新非常罕见,我是唯一进行更新的人。
也没有依赖关系。没有任何内容指向这些记录,因此其他表没有完整性问题。
当我想添加另一个记录块时,我将有一个简单的搜索例程,它搜索第一个未使用的记录密钥块,其大小足以容纳所有添加的记录。与硬盘空间使用方式大致相同。
答案 0 :(得分:1)
密钥通常用作unique
个标识符,如果再次使用,则stop
是唯一的,并变为shared
。这是不重用密钥的理念背后的逻辑。
所以我建议将用户的密钥和ID拆分为两个字段,将密钥键为唯一,id通过间隙查找功能使其“可选”。
在拆分之前,创建一个名为user-id的新列,并将用户的ID(目前是您的key
)复制到该列。
然后使此列唯一,以防止意外重用id。
你自由地“回家”。