码迷,mamicode.com
首页 > 其他好文 > 详细

时间字段的选择

时间:2015-09-26 14:46:03      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

 关于一些人的选择 
  1. datetime
  2. timestamp
  3. int(10)
  4. bigint(13)
  5. 还有人选择用char来存储时间 - -#


时间区间的差别
  1. datetime            时间区间(0000年到9999年)
  2. timestamp          时间区间(1970到2038-01-19 11:14:07)
  3. int(10)                其实就是timestamp的数字版,使用  
                             unix_timestamp 和 from_unixtime 这俩函数进行转换
  4. bigint(13)           精确到毫秒的时间撮
                             Java中也就是 System.currentTimeMillis() ,使用的时候 需要自行转换
  5. char                   char(13),与上面这一条类似

其他方面:

插入效率:datetime > timestamp > int
读取效率:int > timestamp > datetime
储存空间:datetime > timestamp = int 

1.存储类型,char的本质是定长字符串,datetime表现是时间类型,本质是int.
  精度要求相同时,char占用的空间更大.

2.char可以存储时间的长度和精度可以完全由程序决定,datetime则由数据库本身决定. 

3.作为索引的查询性能,datetime的存储类型更短,而且为int类型辨识度更高,在where或join时可以有更好的性能。 所以,datetime更节约空间,有更好的查询性能,如果datetime的长度或精度不满足需求,建议存储bigint类型的时间戳,没有必要将时间类型存为char。

参考:
http://www.zhihu.com/question/27097981/answer/35539215

时间字段的选择

标签:

原文地址:http://my.oschina.net/httpssl/blog/511473

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