мы пишем научный инструмент с поддержкой MySQL. Проблема, нам нужна точность микросекунды для наших полей даты и времени, которые в настоящее время не поддерживает MySQL. Я вижу по крайней мере два обходных решения здесь:
Самый популярный запрос выбирает столбцы, соответствующие временному интервалу (т.е. dt_record> time1 и dt_record <time2).
Какой из этих методов (или возможно другой), вероятно, обеспечит лучшую производительность в случае больших таблиц (миллионы строк)?
Если вы скажете, что самые популярные запросы - это временная база, я бы порекомендовал использовать один столбец, в котором хранится время, как в вашем первом варианте .
Вы можете выбрать свою эпоху для приложения и работать оттуда.
Это должно упростить запросы, которые необходимо писать при поиске временных интервалов.
Также ознакомьтесь с 10.3.1. Типы DATETIME, DATE и TIMESTAMP
Однако микросекунды не могут быть сохранены в столбце любого типа временных данных . Любая часть микросекунд отбрасывается. Преобразование значений TIME или DATETIME в числовую форму (например, путем добавления +0) приводит к двойному значению с частью микросекунд , равной 0,00000000.
Как насчет разделения частей даты на часть, содержащую только дату, и микросекунды от полуночи? В сутках меньше 2 ^ 64 микросекунд. Затем сгруппируйте таблицу по {дата, микросекунда}.
Я предполагаю, хотя я не знаю ваших данных, что некоторые запросы будут удовлетворительными с точностью на уровне дня - «эксперименты в 1964 году» не должны беспокоиться о микросекундах.