【问题标题】:Is there a huge performance difference between datetime type and integer type when sorting? Rails 4 and MySQL排序时 datetime 类型和整数类型之间是否存在巨大的性能差异? Rails 4 和 MySQL
【发布时间】:2015-02-11 04:12:59
【问题描述】:

我用Rails 2年了,建表时一直使用:datetime类型,然后这些列用来比较和排序,比如:start_time:end_time等。

现在我正在做一个新项目,我正在考虑使用一个额外的列来存储相应的时间戳以便将来进行排序,即:integer 类型。

提高性能值得做吗?不过,在不久的将来,表大小不会超过 100 万行。

谢谢!

【问题讨论】:

  • 抱歉在发布这个问题之前没有做足够的搜索,我从其他似乎回答了我的问题的问题中找到了这个链接:dbscience.blogspot.com/2008/08/…

标签: mysql ruby-on-rails performance datetime integer


【解决方案1】:

没有。

当然,内部编码不同。当然,一个比另一个消耗更多的 CPU。但与获取和剖析行的努力相比,差异是微不足道的。

列是否被索引?您会扫描或排序整个 1M 行吗?在范围的大端进行优化 - 尽量减少您需要接触的行数。

或者您可以查看占用的空间:INT 是 4 个字节。在旧版本的 MySQL 中,TIMESTAMP 为 4 个字节,DATETIME 为 8 个字节。在最近​​的版本中,TIMESTAMP 和 DATETIME 为 5 个或更多字节,具体取决于是否包含小数秒。

不要因为您可能不需要的优化而弄乱您的应用程序。

【讨论】:

  • 感谢您的回答。我同意最后的说法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-19
  • 1970-01-01
  • 2011-08-13
  • 1970-01-01
  • 2011-02-02
  • 1970-01-01
相关资源
最近更新 更多