mysql - mysql上需要大于20位的整数怎么办?

标签 mysql int varchar bigint

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(或其他文本字段)并希望你不需要对它做太多的数学运算。

或者,您可以使用 decimal(65,0) 作为列类型。

关于mysql - mysql上需要大于20位的整数怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7142604/

相关文章:

mysql - 计算重复值 - 帮助我的 mysql 查询非常慢

php - MySQL 返回 0 行,其中行具有 & 符号

MySQL-如何添加与另一个表的多列总和同步的新列

mysql - 如何在不创建B+Tree INDEX的情况下使MySQL字段唯一

postgresql - 什么是 Postgresql 等效的 string.Format ("{0:s}", DateTime.Now)?

sql - SQL Server 中的 LIKE 运算符区分大小写吗?

mysql - 有没有办法在 MySQL 中获取最后插入的非自动递增列的 id?

c# - 如何将 Int[][] 转换为 Double[][]?

python - Python 中的 int 对象可以在函数内部变得可迭代吗?

c++ - 放入现有缓冲区