MySQL数据类型存储空间占用日期型

2024年 2月 6日 78.7k 0

1、日期型存储空间占用

官方文档对日期型存储空间占用分成了两个部分来说明,5.6.4以前和5.6.4以后,因为5.6.4是很久的版本了,所以我后面基于5.6.4以后的版本来说明

带上取值范围整理了一份表格

从上面表格中有两个点需要关注
1、放弃TIMESTAMP 类型吧。2038问题,虽然还有10多年,但的确是一个隐患,而datetime 只比TIMESTAMP 多占用一字节。 所以建表设计都用datetime 而不用 TIMESTAMP

2、year类型,范围可能和你想象不一样。

create table if not exists stt2
(
st1 year
);

insert into stt2
values(year('9999-12-01'));

会报如下错误

准备再写一期字符型的存储空间占用,空间占用的基础就写完了

为什么我要写空间占用呢?
有以下几个点
1、表设计的时候,知道空间占用与范围,可以使设计更合理
2、查询计划的ken_len 是一个很重要的数据,要完全看懂空间占用是前提
3、库表设计的时候,根据一些特性,避免一些坑(如:上面的日期型两个点。另外就是下一篇准备讲的,如果你的表字段有 varchar(60)之类的,我会强烈要求不要这么做。需要改为varchar(64))

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论