sla*_*acy 1 sql twitter 64-bit primary-key
我正在设计一个新的系统来存储短文[sic].
我将通过数据库中的唯一标识符识别每条消息,并使用AUTO_INCREMENT列生成这些标识符.
传统观点认为从0开始并从那里开始编号我的信息是可以的,但我担心我服务的寿命.如果我创建一个外部API,并将其发送到2 ^ 31条消息,那么使用该API的某些人可能会将我的标识符错误地存储在带符号的32位整数中.在这一点上,他们会溢出或崩溃或发生可怕的事情.如果可能的话,我想避免这种foo-pocalypse.
我应该"更新消息SET id = 2 ^ 32 + 1;" 在我启动服务之前,强制每个人从头开始将我的标识符存储为带符号的64位数字?
如果您想实现目标并避免cletus提到的问题,解决方案是将您的起始值设置为2 ^ 32 + 1.仍然有很多ID,它不适合32位值,签名或其他方式.
当然,记录价值范围并为API或数据客户提供指导是唯一正确的解决方案.有人会一直试着坚持一个很长的时间,并且想知道为什么它不起作用(总是)
归档时间: |
|
查看次数: |
720 次 |
最近记录: |