排序时,datetime类型和整数类型之间是否存在巨大的性能差异? Rails 4和MySQL

时间:2015-02-11 04:13:00

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

我一直在使用Rails 2年,并且在创建表时始终使用:datetime类型,然后这些列用于比较和排序,例如:start_time:end_time,等

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

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

谢谢!

1 个答案:

答案 0 :(得分:2)

没有

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

列是否已编入索引?你会扫描或整理整行1M行吗?优化频谱的大端 - 最小化您需要触摸的行数。

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

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