排序时datetime类型和integer类型的性能差异大吗? Rails 4 和 MySQL
Is there a huge performance difference between datetime type and integer type when sorting? Rails 4 and MySQL
我用了2年Rails,在创建table的时候一直使用:datetime
类型,然后用这些列进行比较排序,比如:start_time
和:end_time
等
现在在做一个新的项目,想多加一个列来存储对应的时间戳,方便以后排序,也就是:integer
类型。
提高性能是否值得?不过,table 大小在不久的将来不会超过 100 万行。
谢谢!
没有
当然,内部编码不同。当然,一个比另一个花费更多 CPU。但与获取和剖析行的工作相比,差异微不足道。
该列是否已编入索引?您要扫描或排序整个 100 万行吗?在频谱的大端进行优化 - 尽量减少需要触摸的行数。
或者您可以查看 space 采取的:INT 是 4 个字节。在旧版本 MySQL 中,TIMESTAMP 为 4 个字节,DATETIME 为 8 个字节。在最新版本中,TIMESTAMP 和 DATETIME 为 5 个或更多字节,具体取决于是否包含小数秒。
不要因为您可能不需要的优化而弄乱您的应用程序。
我用了2年Rails,在创建table的时候一直使用:datetime
类型,然后用这些列进行比较排序,比如:start_time
和:end_time
等
现在在做一个新的项目,想多加一个列来存储对应的时间戳,方便以后排序,也就是:integer
类型。
提高性能是否值得?不过,table 大小在不久的将来不会超过 100 万行。
谢谢!
没有
当然,内部编码不同。当然,一个比另一个花费更多 CPU。但与获取和剖析行的工作相比,差异微不足道。
该列是否已编入索引?您要扫描或排序整个 100 万行吗?在频谱的大端进行优化 - 尽量减少需要触摸的行数。
或者您可以查看 space 采取的:INT 是 4 个字节。在旧版本 MySQL 中,TIMESTAMP 为 4 个字节,DATETIME 为 8 个字节。在最新版本中,TIMESTAMP 和 DATETIME 为 5 个或更多字节,具体取决于是否包含小数秒。
不要因为您可能不需要的优化而弄乱您的应用程序。