首页 > 解决方案 > MySQL 的 float(24) 列所需的存储大小是多少?

问题描述

我问是因为官方文档中有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 <= p <= 24 则为 4 个字节,如果 25 <= p <= 53 则为 8 个字节

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

标签: mysqlmariadbsqldatatypes

解决方案


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


推荐阅读