承接:《高性能MySQL》阅读-MySQL选择数据类型
整理时间:20210112 22:00-23:00
【星野残红】诗号:
英雄本无泪,怀刀饮寒风。
7. 日期和时间类型
1. MySQL能存储的最小时间粒度为S
2. MySQL提供两种相似的日期类型DATETIME和TIMESTAMP。
DATETIME:
①1001~9999年,精度为S;它把日期和时间封装到格式为YYYYMMDDHHMMSS的整数中,与时区无关。使用8个字节的存储空间
②默认情况下,MySQL以一种可排序的,无歧义的格式显示DATETIME值“2021-01-12 22:03:08”。这是ANSI标准定义的日期和时间表示方法
TIMESTAMP:
① 19070101000000~2038;它和UNIX时间戳相同,TIMESTAMP使用4个字节的存储空间
②TIMESTAMP显示的值依赖于时区
③TIMESTAMP也有DATETIME没有的特殊属性,默认情况下,如果插入时没有指定第一个TIMESTAMP列的值,MySQL则设置这个列的值为当前时间。除非你设定了这个列 的值。TIMESTAMP列的默认值为NOT NULL
④通常情况下,也尽量使用TIMESTAMP, 因为它比DATETIME空间效率更高
**NOTICE:**如果需要存储更小粒度的日期和时间,MySQL目前没有提供合适的数据类型,但是可以使用自己其他的存储格式。可以使用BIGINT类型存储微秒级的时间值,或者使用DOUBLE来存储秒之后的小数部分
8. 位数据类型
1. 无论底层存储格式和处理方法如何,从技术上说都是字符串类型
2. BIT
① 可以使用BIT列在一列中存储一个或多个true/false值。BIT列的最大长度是64个位
② MySQL把BIT当做字符串类型,而不是数字类型
③ 应该谨慎使用BIT类型,最好避免使用这种类型
3. SET
①如果需要保存很多true/false值,可以考虑合并这些列到一个SET数据类型
《高性能MySQL》阅读-MySQL选择数据类型二、
最新推荐文章于 2024-01-05 22:39:12 发布