暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

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

原创 aisql 2024-02-06
369

1、日期型存储空间占用

image.png

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

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

从上面表格中有两个点需要关注
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'));
复制

会报如下错误
image.png

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

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

最后修改时间:2024-02-06 11:03:15
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论