大型应用程序使用什么数据类型来存储时间数据?

大型应用程序使用什么数据类型来存储时间数据?

我想知道对于像 Facebook 或 Instagram 这样的大型应用程序,哪种数据类型更适合在 MySQL 或 Cassandra 数据库中存储时间数据?有很多类似的问题和答案,但我最终无法意识到哪一个是更好的选择?

所以我决定问这样一个问题,看看是否有人知道大型应用程序使用什么数据类型来存储它们的时间数据?

  1. 时间戳
  2. 约会时间
  3. UNIX 时间戳

答案1

大概TIMESTAMP

TIMESTAMP是一个可能的选择,因为它无论用户身在何处都会记录一次时间。它在磁盘上本质上是 UTC,但会转换为查看它的机器的时区/从查看它的机器的时区转换而来。与此同时,服务器(不一定是客户端)也设置为 UTC。

DATETIME如果您所在的位置遵守 DST(“夏令时”),则每年会有一个小时的缺失,而一年中的另一个时间会有一个额外的小时。这会导致在比较时间、运行 cron 作业等时出现各种问题。

(对于 MySQL 来说,UNIX_TIMESTAMP是一个函数,而不是数据类型。)

在极少数情况下,您可能会保留“小数秒”。例如,TIMESTAMP(6)包括微秒的时间。(但是,不要相信两个事件永远不会有相同的微秒时间;也就是说,不要依赖于它来实现唯一性。)

相关内容