我一直在使用Rails 2年,并且在创建表时始终使用:datetime
类型,然后这些列用于比较和排序,例如:start_time
和:end_time
,等
现在我正在开发一个新项目,我正在考虑使用额外的列来存储相应的时间戳,以便将来进行排序,即:integer
类型。
提高性能是否值得?不过,表格大小在不久的将来不会超过100万行。
谢谢!
答案 0 :(得分:2)
没有
当然,内部编码是不同的。当然,一个与另一个的CPU消耗更多。但与获取和解剖行的努力相比,差异微不足道。
列是否已编入索引?你会扫描或整理整行1M行吗?优化频谱的大端 - 最小化您需要触摸的行数。
或者您可以查看所占用的空间:INT是4个字节。在旧版本的MySQL中,TIMESTAMP为4个字节,DATETIME为8.在最新版本中,TIMESTAMP和DATETIME为5个或更多字节,具体取决于是否包含小数秒。
不要因为您可能不需要的优化而弄乱您的应用程序。