mysql - 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 会这样做呢?
解决方案
正如@RickJames 建议的那样-如果您使用它进行测试,SHOW CREATE TABLE
您当然可以看到它FLOAT(24)
是浮动的,FLOAT(25)
而是双倍的。
推荐阅读
- c# - Is there any alternative to DragOver to suppress glyph on drag drop?
- python - How can i break a for-loop with an key event?
- rust - 包 XXX 链接到本机库 YYY,但它与之前也链接到 YYY 的包冲突:package ZZZ
- php - 为多个时间范围设置 PHP cronjob
- google-assistant-sdk - 为 Traits 调用确定的执行器
- terraform - 使用什么 terraform 命令来检查资源创建状态?
- r - Change sub-titles in lattice/densityplot
- json - 在 J2EE 服务器上交付服务时,REST 服务在哪些层工作?
- sql - 如何修复此错误“在选择列表中无效,因为它不包含在...中”
- vue.js - 方法在插值 nuxjs/vue 中不返回值的问题