【问题标题】:Is it good to store date in INT(milliseconds) format rather than yyyy-mm-dd hh:mm:ss format?以 INT(毫秒)格式而不是 yyyy-mm-dd hh:mm:ss 格式存储日期是否好?
【发布时间】:2016-02-05 06:52:23
【问题描述】:

我有一个关于在 mysql 数据库中存储日期的问题。就是这样:

以INT(毫秒) 格式而不是 yyyy-mm-dd hh:mm:ss 格式存储日期好吗?

例如,在撰写问题时,日期时间是 2016-02-05 12:19:46。将此日期时间以 INT 表示毫秒(1446xxxxxxx)格式存储在数据库中是个好主意吗?它会提高我的数据库性能吗?

【问题讨论】:

  • 通常使用 UNIX 时间,它是秒而不是毫秒。我不能告诉你太多关于实际数据库性能的信息,但我相信你可以在那里找到基准。大多数情况下,您会根据最适合您的代码的格式来选择任何一种格式。此外,我认为您会发现最大的性能差异在于如何处理代码中的日期而不是数据库中的日期。
  • @FelixPamittan 你能给我一些简短的描述吗?
  • 我猜不,性能不会影响。但如果您正在考虑时区,那么最好存储在 unix 时间戳中

标签: mysql date datetime


【解决方案1】:

不,以整数格式(毫秒)存储日期不是一个好习惯。因为每当您需要数据库中的日期时,您都必须将其转换回日期格式,这会影响应用程序的性能。 当谈论 Db 的性能时,它会保持不变,因为不会有太大影响,但它会成为您从数据库中检索日期并转换回日期格式并在您的应用程序中表示或使用的瓶颈。

但如果你真的需要它,你可以这样做。因为我不知道你的应用场景和它的用法。

【讨论】:

    【解决方案2】:

    这可能是一个基于意见的问题,但我的选择是您应该避免将日期存储为 int(unix 时间格式)。因为每次您想要获取日期并以可读的格式显示它时,这将成为一项非常乏味的任务。

    就性能而言,这取决于您的使用情况。事实上,int 数据类型是日期时间大小的一半。 在排序方面,与日期数据类型相比,int 可以更快(没有测试)。 Also the performance of date datatype is faster than the int datatype. 但是在格式化日期时选择它们并出于显示目的后会想要,这将是困难且不必要的开销。

    【讨论】:

      猜你喜欢
      • 2021-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-23
      • 1970-01-01
      • 2019-03-22
      • 2015-11-03
      • 1970-01-01
      相关资源
      最近更新 更多