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