0

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

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

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

4

1 回答 1

1

99.999% 的时间,一个简单INT的东西可以完成类似user_id. 没必要发疯。这允许 21 亿用户,或者换句话说,每天每秒有两个人注册,持续 34 年。

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

不要忘记INT无论精度设置如何,an 的存储成本都是 4 个字节。对于 64 位数字,它是 8 个字节。这里的差异不是很大,但就指数表现而言,INT将表现BIGINT出少量但有意义的数量,因此BIGINT除了最极端的情况外,全面进行都是过大的。

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

于 2015-09-16T16:47:47.130 回答