我正在为我的新 Go 系统构建 ISO 和 RFC 投诉核心。我正在使用 MySQL,目前正在为最重要的基表找出最佳设置。
我想弄清楚如何在数据库中存储日期时间。我想在数据库中保存的时间将占用的空间、查询功能和与 UTC 的兼容性以及简单的时区转换之间取得良好的平衡,这不会在插入和检索数据时产生烦人的冲突去/MySQL。
我知道这在我的问题标题的上下文中听起来有点奇怪。但我看到很多包装器、ORM 等仍在存储 UNIX 时间戳(微秒?)。我认为总是存储 UTC nano 时间戳并接受丢失日期/时间查询功能会很好。我不想在运行具有大量不同国家/语言/时区/货币/翻译/等的系统时遇到问题。(国际化和本地化)。我之前已经在使用某些系统时遇到过这些问题,这让我发疯了,最终不得不在整个代码库中应用大量修复程序,以至少将某些转换恢复原状。我不希望这发生在我的系统中。如果这意味着我总是需要做一些额外的编码以将所有存储的时间保持在正确的 UTC+0,我会认为这是理所当然的。基于 ISO-8601 以及时区偏差和日间节省,我将确定日期/时间的输出。
上面的故事是基于意见的。但我的实际问题是,选择 Go 的时间戳作为 INT 存储与 MySQL TIMESTAMP 或 DATETIME 相比,哪种更有效;
1.) 考虑到存储,什么是最佳的?
2.) 考虑到时区约定,什么是最佳的?
3.) 考虑到速度和 MySQL 查询,什么是最佳的?
相关分类