问题:在mysql上需要大于20位的整数怎么办?

似乎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 位整数值的十进制数,其中decimal(65,0)作为列类型。

Logo

华为、百度、京东云现已入驻,来创建你的专属开发者社区吧!

更多推荐