关于一些人的选择
- datetime
- timestamp
- int(10)
- bigint(13)
- 还有人选择用char来存储时间 - -#
时间区间的差别
- datetime 时间区间(0000年到9999年)
- timestamp 时间区间(1970到2038-01-19 11:14:07)
- int(10) 其实就是timestamp的数字版,使用
unix_timestamp 和 from_unixtime 这俩函数进行转换 - bigint(13) 精确到毫秒的时间撮
Java中也就是 System.currentTimeMillis() ,使用的时候 需要自行转换 - 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
时间: 2024-10-17 02:45:16