Title:[转]MySQL 中你应该使用什么数据类型表示时间?Create:2018-09-04 ◊ :873
:2018-09-04 15:50
: TabKey9 :0 :0
当你需要保存日期时间数据时,一个问题来了:你应该使用 MySQL 中的什么类型?使用 MySQL 原生的 DATE 类型还是使用 INT 字段把日期和时间保存为一个纯数字呢?
本篇文章只转载结论,相关基准测试请查看原文:MySQL 中你应该使用什么数据类型表示时间?
结论
基于这些数据,我确信 Datetime 是大多数场景下的最佳选择。原因是:
更快(根据我们的三个基准测试)。
无需任何转换即是人类可读的。
不会因为时区变换产生问题。
只比它的对手们多用 1 字节
支持更大的日期范围(从 1000 年到 9999 年)
如果你只是存储 Unix 时间戳(并且在它的合法日期范围内),而且你真的不打算在它上面使用任何基于日期的查询,我觉得使用 INT 是可以的。我们已经看到,它执行简单数值比较查询时非常快,因为只是在处理简单的数字。
Timestamp 怎么样呢?如果 Datetime 相对于 Timestamp 的优势不适用于你特殊的场景,你最好使用时间戳。阅读这篇文章后,你对三种类型间的区别应该有了更好的理解,可以根据你的需要做出最佳的选择。