我将记录处理REST请求所花费的时间,而我还没有确定哪种数据类型最适合该列。时间差是毫秒级,我不希望它小于1毫秒,但可能是几秒钟(通常希望它不会更高!)。
与Best way to store span on time in a MySQL database?非常相似,但具有更高的精确度。
我相信我有两个选择:时间戳或整数。时间戳具有微秒精度,整数可以具有我需要的任何实际精度(只需将时间差乘以Y * 1000)。
时差将以PHP计算
$start = microtime(true);
// do something
$runtime = microtime(true) - $start;
哪种数据类型最适合在MySQL中以毫秒级存储时差?
这种情况的时间戳和整数的优缺点是什么?
答案 0 :(得分:4)
时间戳用于存储时刻,而不是持续时间。 TIMESTAMP
不存储毫秒,TIME
也不存储。使用整数字段。
我也发现了一个类似的问题:Storing microseconds in MySQL: which workaround?。
答案 1 :(得分:3)
时间戳不会削减它。
TIMESTAMP列以与DATETIME相同的格式显示 列。换句话说,显示宽度固定为19个字符, 格式为'YYYY-MM-DD HH:MM:SS'。
即使你做了几行来捕捉“时刻”来做两者的增量(差异),最好的精度只能是几秒钟。
我会用整数来做。这样您可以在几毫秒内执行multipliers
。例如,.1毫秒可以在整数列中存储为“1”。因为整数只能存储在整数列中,所以通过使用硬乘数规则,可以向后工作以确定毫秒数。