【问题标题】:What is the storage size required for a float(24) column with MySQL?MySQL 的 float(24) 列所需的存储大小是多少?
【发布时间】:2019-12-17 16:43:43
【问题描述】:

我问是因为官方文档中有2个不同的答案...

是 8 个字节吗? https://dev.mysql.com/doc/refman/8.0/en/floating-point-types.html

从 0 到 23 的精度会产生一个 4 字节的单精度 FLOAT 列。从 24 到 53 的精度会产生一个 8 字节的双精度 DOUBLE 列。

还是 4 个字节? https://dev.mysql.com/doc/refman/8.0/en/storage-requirements.html#data-types-storage-reqs-numeric

FLOAT(p):如果 0

我认为第一页有一个错误,因为 float(24) 只需要 4 个字节的存储空间与 PostgreSQL 和 MS SQL Server...那么为什么 MySQL 会这样做呢?

【问题讨论】:

  • 我建议您将此作为文档错误提交给 MySQL,看看他们修复了哪个。
  • 由于底层格式具有 24 位二进制精度(“逐渐下溢”期间除外),因此 24 应该是 4 个字节。我在 5.6 上测试过;它是。注意,当你用FLOAT(30),再做SHOW CREATE TABLE,就说明转成DOUBLE了。

标签: mysql mariadb sqldatatypes


【解决方案1】:

正如@RickJames 建议的那样 - 如果您使用SHOW CREATE TABLE 进行测试,您当然可以看到FLOAT(24) 是浮点数,而FLOAT(25) 是双精度数。

【讨论】:

    猜你喜欢
    • 2011-12-08
    • 2019-05-12
    • 2018-03-13
    • 2012-03-25
    • 2012-11-10
    • 2021-03-19
    • 2013-04-26
    • 2018-09-29
    • 1970-01-01
    相关资源
    最近更新 更多