【问题标题】:Unused length/value of the cell未使用的单元格长度/值
【发布时间】:2015-09-16 16:37:37
【问题描述】:

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

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

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

【问题讨论】:

    标签: mysql sql database datalength


    【解决方案1】:

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

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

    不要忘记INT 的存储成本是 4 字节,无论精度设置如何。对于 64 位数字,它是 8 个字节。这里的差异不是很大,但就指数性能而言,INT 的表现将比BIGINT 小但有意义,所以除了最极端的情况外,全面使用BIGINT 是矫枉过正的。

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

    【讨论】:

      猜你喜欢
      • 2011-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多