好像BIGINT是MySQL上可用的最大整数,对不对?
BIGINT
例如,当您需要存储BIGINT(80)时该怎么办?
为什么在某些情况下,例如Twitter API文档中的某个地方,他们建议我们将这些大整数存储为varchar?
varchar
选择使用一种类型而不使用另一种类型的真正原因是什么?
大整数实际上并不受限于20位数字,它们限于可以用64位表示的数字(例如,该数字99,999,999,999,999,999,999尽管长20位,但不是有效的大整数)。
99,999,999,999,999,999,999
出现此限制的原因是底层硬件可以相对快速地处理本机格式整数,而数字的文本版本(倾向于)需要一次处理一位。
如果您想要一个大于最大64位无符号整数的数字,18,446,744,073,709,551,615则需要将其存储为varchar(或其他文本字段),并希望您不需要对其进行太多的数学处理。
18,446,744,073,709,551,615
另外,您可以查看范围较大但精度较低的浮点数,或者应使用十进制数decimal(65,0)作为列类型,以便为整数值提供65位数字。
decimal(65,0)