MySQL ;大数的最佳数据类型
Posted
技术标签:
【中文标题】MySQL ;大数的最佳数据类型【英文标题】:MySQL ; Best data type for large numbers 【发布时间】:2017-01-28 01:31:34 【问题描述】:我想在 MySQL 数据库表中存储一个每天存储频道点击次数(每秒增加并在一天内更新)的字段。我应该为该列分配什么数据类型,记住它甚至可以小于 100 甚至可以超过一百万。
【问题讨论】:
如果它是一个整数值 - 使用整数列有什么问题。有关值范围,请参阅文档:dev.mysql.com/doc/refman/5.7/en/integer-types.html 【参考方案1】:MySQLInteger Types (Exact Value):
Fixed-Point Types (Exact Value) - DECIMAL, NUMERIC:
在标准 SQL 中,语法 DECIMAL(M) 等价于 DECIMAL(M,0)。 类似地,语法 DECIMAL 等价于 DECIMAL(M,0),其中 允许实现来决定 M 的值。 MySQL 支持 这两种 DECIMAL 语法的变体形式。 M的默认值 是 10。
如果小数位数为 0,则 DECIMAL 值不包含小数点或 小数部分。
DECIMAL 的最大位数为 65,但实际范围 对于给定的 DECIMAL 列,可以通过精度或 给定列的比例。当这样的列被赋值时 小数点后的位数超过了允许的位数 指定的比例,值将转换为该比例。 (精确的 行为是操作系统特定的,但通常效果是 截断到允许的位数。)
Storage Requirements:
【讨论】:
就像我们使用 varchar 来表示不确定长度的字符串,我可以使用这种数据类型(DECIMAL)来表示不确定的数字吗? 您需要对自己的真正需求保持现实。如果你认为你达到了一百万,那么unsigned
int 的最大值是它的 4000 倍。而且只有 4 个字节,并且对于连接很薄。
DECIMAL
确实有一个限制,但它比任何可能的“计数器”要高得多。以上是关于MySQL ;大数的最佳数据类型的主要内容,如果未能解决你的问题,请参考以下文章
存储 MD5 哈希或 NULL 的最佳 MySQL 数据类型