【发布时间】:2013-01-31 06:56:11
【问题描述】:
我在 phpMyadmin 中使用 MySql。我有一个包含主键的表。这个主键是'userid',它也是一个“自动增量”字段。该应用程序还具有删除具有“用户 ID”的特定用户的功能。因此,当我再次创建新用户时删除用户后,“userid”将获得下一个整数的值。我希望表考虑删除并分配主键值,已删除的数字 ..
示例: 表中的 'userid' 值为 - 1,2,3,4,5,6,7.... 我删除了值为 3 的用户 ID。 所以现在当我创建用户的下一条记录时,该表应该使用用户 ID 值“3”,因为它不再使用。我如何在 phpmyadmin 中做到这一点?
我想这样做以保持用户 ID 的值最小。计数可能会达到用户 ID 的 5 位数值。因此,如果一个 2 位可以使用,因为它之前被删除,使用这个 2 位值将节省数据库的内存使用
【问题讨论】:
-
这是不可能的,因为你有一个 user_id 的自动增量值,
-
你知道在删除你正在删除的那个 user_id 时,将那个 id 分配给它,这只有在不使用自动增量并且你自己为用户分配一个唯一的 id 时才有效
-
但如果我删除 AI,那么我将不得不跟踪已删除和正在使用的用户 ID 值,这将是一个开销。每次插入记录时,我都必须手动输入用户值。那么如何在数据库中节省内存呢?
-
其实简单来说,你想太多了,这和内存无关,如果你使用自动增量,你不必分配删除的user_id,因为它没有意义,如果您分配该已删除的 id,因为为此您还必须搜索哪些 id 已被删除,因此请避免正在做的事情,
-
我使用的逻辑是“一个值中的数字越多,数据库使用的内存就越多”。因此得出的结论是“使用的内存会更多”,因此寻找解决方案
标签: mysql database phpmyadmin primary-key primary-key-design