在MySQL中存储18位数值的最佳数据类型是什么?

4

在MySQL中,存储18位数值的最佳数据类型是什么?

  • 该数字始终为正数
  • 此列将是主键和分区列
  • 精度的位数始终为18
  • 小数点后的位数始终为0

有多种数据类型可供选择

BIGINT
FLOAT(18,0)
DECIMAL(18,0)
DOUBLE(18,0)

MySQL中存储和检索此类值的行业标准和最有效数据类型是什么?


你所说的18位数字值,是指数据类型long(或MySQL中的BIGINT)范围内的值,它使用64位存储吗?还是你也将数字9重复18次作为一个数字来保存? - Progman
1个回答

3
使用BIGINT UNSIGNED,它可以支持至少19位数字的精度。最大值为18446744073709551615。
在这种情况下,使用DECIMAL,FLOAT或DOUBLE没有任何优势,因为您说该值没有比例。
但是您需要18位数字的精度,因此FLOAT / DOUBLE的舍入行为可能无法满足您的需求。请参阅FLOAT / DOUBLE的问题

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接