1

我有一个记录事件时间戳的 java 应用程序。我面临的问题是通常有很大的容量,并且让 java 计算和格式化日期时间对于性能来说成本太高。我最终将 mysql 字段设置为自动使用 current_timestamp。这在我的应用程序中获得了巨大的性能提升。

我遇到的一个大问题是我们一半的用户有托管在别处的mysql服务器,并且时区设置不同,可能无法更改。

我需要找到一种在任一侧生成时间戳的方法,但如果需要,以一种不会影响性能的方式轻松转换为正确的时区。

我考虑过使用 unix epoch,因为在我插入数据时不需要任何格式,所以它应该不是性能问题。

有没有更好的办法?

4

1 回答 1

0

引用MySQL 手册

MySQL 将 TIMESTAMP 值从当前时区转换为 UTC 进行存储,并从 UTC 转换回当前时区进行检索。(...) [当前] 时区可以在每个连接的基础上 [使用time_zone系统变量] 设置。

我建议坚持使用内置TIMESTAMP类型。当前会话的时区可以通过发布来设置(例如对于 UTC+2)SET SESSION time_zone = '+2:00';

于 2013-05-15T14:44:53.647 回答