数据库

 首页 > 数据库 > MySql > Mysql存储时间字段用int、timestamp还是datetime?

Mysql存储时间字段用int、timestamp还是datetime?

分享到:
【字体:
导读:
         摘要:4个字节存储,INT的长度是4个字节,存储空间上比datatime少,int索引存储空间也相对较小,排序和查询效率相对较高一点点...

Mysql存储时间字段用int、timestamp还是datetime?

通常存储时间用datetime类型,现在很多系统也用int存储时间,它们有什么区别?本人总结如下:

int

(1).4个字节存储,INT的长度是4个字节,存储空间上比datatime少,int索引存储空间也相对较小,排序和查询效率相对较高一点点
(2)可读性极差,无法直观的看到数据,可能让你很恼火

TIMESTAMP

(1)4个字节储存
(2)值以UTC格式保存
(3)时区转化 ,存储时对当前的时区进行转换,检索时再转换回当前的时区。
(4)TIMESTAMP值不能早于1970或晚于2037

datetime

(1)8个字节储存
(2)与时区无关

(3)以'YYYY-MM-DD HH:MM:SS'格式检索和显示DATETIME值。支持的范围为'1000-01-01 00:00:00'到'9999-12-31 23:59:59'


mysql也是这两年才流行,性能越来越来,具体怎么存储看个人习惯和项目需求吧
分享两篇关于int vs timestamp vs datetime性能测试的文章 Mysql存储时间字段用int、timestamp还是datetime?
分享到:
Mysql InnoDB为什么要添加跟业务无关的自...
Mysql InnoDB为什么要添加跟业务无关的自增主键在Mysql表设计中,通常会使用一个与业务无关的自增列做为主键。这是因为Mysql默认使用B-Tree索引,你可以简单理解为“排好序的快速查找结构”。如下是一个B-Tree的结构图,2层B+树,每个页面的扇出为4;并有1到6五条记录;上层记录保存每个页面的最小值;每个页面通过双向链表...
utf8_general_ci和utf8_unicode_ci的区别...
utf8_general_ci和utf8_unicode_ci的区别? 看到很多数据库的设计对于中文字符都是选择选用utf8_general_ci而非utf8_unicode_ci?utf8_general_ci和utf8_unicode_ci的区别并不大:utf8_unicode_ci校对更准确,utf8_general_ci速度比较快。它们的差别主要在德语和法语上,对于准确性utf8_general_ci足够了,所以一般选用utf8_...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……