码迷,mamicode.com
首页 > 数据库 > 详细

Mysql 数据类型优化

时间:2015-10-24 11:41:25      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

一、日期与时间类型

    MySQL 可以使用许多类型来保存日期和时间值。

    如:YEAR和DATE。MySQL能存储的最小时间粒度为秒(MariaDB支持微秒级别的时间类型)。但是MySQL也可以使用微妙级的粒度进行临时运算,我们会展示怎么绕开这种存储限制。

    DATETIME

        这个类型能保存大范围的值,从1001年到9999年,精度为秒。它把日期和时间封装到格式为YYYYMMMDDHHHMMSS的整数中,与时区无关。使用8个字节的存储空间。

默认情况下,MySQL以一种可排序的无歧义的格式显示 DATETIME值,例如“2015-10-24 09:57:33”.这是ANSI标准定义的日期和时间表示方法。

    TIMESTAMP

    就像它的名字一样,TIMESTAMP类型保存了1970年1月1日0点(格林尼治标准时间)以来的秒数,它和UNIX时间戳相同。TIMESTAMP只使用4个字节的存储空间,因此它的范围比DATETIME小的多:只能存储 1970 到 2038年。

如果在多个时区存储或访问数据,TIMESTAMP和DATETIME的行为将很不一样。

TIMESTAMP提供的值与时区有关系,后者刚保留文本表示的日期和时间。

也可以指定TIMESTAMP的  添加 与更新的行为,TIMESTAMP列的默认为NOT NULL

除了特殊的行为之外 ,通常也应该尽量用TIMESTAMP,因为它比DATETIME空间效率更高有时候人们会将Unix时间戳存储为整数值,但这不会带来任何收益。用整数保存时间戳的格式通常不方便处理,所以不推荐这样做。


如果需要存储比秒更小的粒度日期和时间怎么办?

MySQL目前没有提供合适的数据类型,但是可以通过使用自己的格式存储: 可以使用BIGINT类型存储微级别的时间戳,或者使用DOUBLE存储秒之后的小数部分。这两种方式,都可以,或者可以使用MariaDB替代MySQL




Mysql 数据类型优化

标签:

原文地址:http://my.oschina.net/lavedream/blog/521477

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!