mysql - 在 MySQL : which workaround? 中存储微秒

标签 mysql performance datetime time-precision

我们正在编写一个支持 MySQL 的科学工具。问题是,我们的日期时间字段需要微秒精度,而 MySQL 目前不支持。我在这里看到至少两个解决方法:

  • 使用 decimal() 列类型,整数部分对应于某个时间点以来的秒数(我怀疑 UNIX 纪元是否可以,因为我们必须存储 60 年代和 50 年代的测量值)。
  • 使用两个整数列,一个代表秒,另一个代表微秒。

最流行的查询是选择与时间间隔对应的列(即 dt_record > time1 和 dt_record < time2)。

在大型表(数百万行)的情况下,这些方法中的哪一种(或者可能是另一种)可能会提供更好的性能?

最佳答案

如果您说最流行的查询是时基查询,我建议您使用存储时间的单列,就像您的第一个选项一样

您可以为应用程序选择自己的 epoch,然后从那里开始工作。

这应该会简化搜索时间间隔时需要编写的查询。

也可以看看 10.3.1. The DATETIME, DATE, and TIMESTAMP Types

However, microseconds cannot be stored into a column of any temporal data type. Any microseconds part is discarded. Conversion of TIME or DATETIME values to numeric form (for example, by adding +0) results in a double value with a microseconds part of .000000

关于mysql - 在 MySQL : which workaround? 中存储微秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2257331/

相关文章:

mysql - 插入选择 mariadb 查询

algorithm - 最大产品前缀字符串

php - 如何使用 php 从数组循环中获取唯一 ID

PHP使用父类函数

MySQL Group By 计算两个字段

c# - 如何用 Java 或 C# 创建快速 MD5 算法

php - 多个 'Select column where ...' vs 选择所有列

C++ - 'localtime' 此函数或变量可能不安全

c# - 在 SQLite 中保存日期?

java - 如何使用FastDateFormat以指定格式将String解析为Date