Лучший тип данных для хранения разницы микровремени в MySQL - PullRequest
1 голос
/ 24 июня 2011

Я собираюсь регистрировать время, необходимое для обработки запроса REST, и я не знаю, какой тип данных лучше всего подходит для столбца. Разница во времени будет в масштабе миллисекунд, где я не ожидаю, что она будет меньше 1 мс, но может составить пару секунд (безусловно, надеюсь, что она не будет выше!).

Очень похоже на Лучший способ сохранить интервал времени в базе данных MySQL? , но с более высокой точностью.

Мне кажется, у меня есть два варианта: отметка времени или целое число. Метка времени имеет микросекундную точность, а целое число может иметь любую практическую точность, которая мне нужна (просто умножьте разницу во времени на Y * 1000).

Разница во времени будет рассчитываться в PHP как

$start = microtime(true);
// do something
$runtime = microtime(true) - $start;

Какой тип данных лучше всего хранить для хранения разницы во времени в масштабе миллисекунд в MySQL?

Каковы плюсы / минусы отметки времени и целого числа для этой ситуации?

Ответы [ 2 ]

4 голосов
/ 24 июня 2011

Отметка времени используется для хранения момента времени, а не продолжительности времени. TIMESTAMP не хранит миллисекунды и не будет TIME. Перейти с целочисленным полем.

Я также нашел похожий вопрос: Хранение микросекунд в MySQL: какой обходной путь? .

3 голосов
/ 24 июня 2011

Отметка времени не собирается сокращать это.

Столбцы TIMESTAMP отображаются в том же формате, что и столбцы DATETIME.Другими словами, ширина экрана фиксирована и составляет 19 символов, а формат «ГГГГ-ММ-ДД ЧЧ: ММ: СС».

Даже если вы делаете несколько строк, чтобы захватить «моментывремя "сделать дельту (разницу) из двух, в лучшем случае точность будет только в секундах.

Я бы сделал это в целое число.Таким образом, вы можете сделать multipliers за миллисекунды.Например, 0,1 миллисекунда может быть сохранена как «1» в целочисленном столбце.Поскольку целые числа могут храниться только в столбце целых чисел, имея правило жесткого множителя, вы можете работать в обратном направлении, чтобы определить миллисекунды.

...