单元格未使用的长度/值



我有一个名为user_id的表列。当一个新用户注册时,它自动递增。

我认为将列的长度/值设置为最大长度(4294967295)可以防止爆炸性用户注册,这会耗尽长度/值。

我担心如果我这样做,列中未使用的长度可能会在数据库中花费比特/存储空间,这会减慢处理时间。情况会是这样吗?

99.999%的情况下,一个简单的INT可以完成user_id这样的工作。没必要这么疯狂。这允许21亿用户,换句话说,每天每秒都有两个人注册,持续34年。

Twitter、Facebook、Google和其他一些网站将需要64位整数来处理这样的事情。我们其他人都很好。

不要忘记,无论精度设置如何,INT的存储成本都是4字节。对于64位数字,它是8字节。这里的差异不是很大,但就索引性能而言,INT将比BIGINT表现得好一点,但这是有意义的,所以除了最极端的情况外,在所有情况下都采用BIGINT是多余的。

简短的回答:别担心。使用INT

最新更新