我已经使用Rails两年了,在创建表时始终使用:datetime类型,然后将这些列用于比较和排序,例如:start_time:end_time等。

现在,我正在一个新项目中,我正在考虑使用其他列来存储相应的时间戳,以供将来进行排序,这是:integer类型。

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

谢谢!

最佳答案

没有。

当然,内部编码是不同的。当然,一个使用的CPU数量要多于另一个。但是,与获取和解剖行的努力相比,差异不明显。

列被索引了吗?您将扫描或排序整个1M行吗?在频谱的最末端进行优化-最大限度地减少需要触摸的行数。

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

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

09-18 15:14
查看更多