Хранение микросекунд в MySQL: какое обходное решение?

мы пишем научный инструмент с поддержкой MySQL. Проблема, нам нужна точность микросекунды для наших полей даты и времени, которые в настоящее время не поддерживает MySQL. Я вижу по крайней мере два обходных решения здесь:

  • Используя десятичное число () тип столбца, с целой частью, соответствующей секундам начиная с некоторого момента времени (я сомневаюсь, что эпоха UNIX сделает, так как мы должны сохранить измерения, проведенные в 60-х и 50-х).
  • Используя два целочисленных столбца, один в течение многих секунд, другой в течение многих микросекунд.

Самый популярный запрос выбирает столбцы, соответствующие временному интервалу (т.е. dt_record> time1 и dt_record <time2).

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

10
задан dpq 13 February 2010 в 11:37
поделиться

2 ответа

Если вы скажете, что самые популярные запросы - это временная база, я бы порекомендовал использовать один столбец, в котором хранится время, как в вашем первом варианте .

Вы можете выбрать свою эпоху для приложения и работать оттуда.

Это должно упростить запросы, которые необходимо писать при поиске временных интервалов.

Также ознакомьтесь с 10.3.1. Типы DATETIME, DATE и TIMESTAMP

Однако микросекунды не могут быть сохранены в столбце любого типа временных данных . Любая часть микросекунд отбрасывается. Преобразование значений TIME или DATETIME в числовую форму (например, путем добавления +0) приводит к двойному значению с частью микросекунд , равной 0,00000000.

5
ответ дан 4 December 2019 в 01:30
поделиться

Как насчет разделения частей даты на часть, содержащую только дату, и микросекунды от полуночи? В сутках меньше 2 ^ 64 микросекунд. Затем сгруппируйте таблицу по {дата, микросекунда}.

Я предполагаю, хотя я не знаю ваших данных, что некоторые запросы будут удовлетворительными с точностью на уровне дня - «эксперименты в 1964 году» не должны беспокоиться о микросекундах.

0
ответ дан 4 December 2019 в 01:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: