Насколько быстрее метка времени, чем столбец datetime в MySQL? - PullRequest
10 голосов
/ 01 ноября 2009

Состоит из двух вопросов:

  1. Действительно ли поле метки времени MySQL быстрее, чем поле даты и времени в запросе "order by"?

  2. Если ответ на поставленный выше вопрос - да, насколько быстрее это может быть? Предполагается, что в таблице из 100 миллионов строк и часто сортируется группа из 100-200 тысяч строк на основе поля метки времени в MySQL, будет ли улучшено время сортировки путем преобразования метки времени в читаемый формат строки во внешней программе?

Ответы [ 2 ]

11 голосов
/ 01 ноября 2009

Самый простой способ выяснить это - написать модульный тест и получить несколько цифр.

Моя теория состояла в том, что отметка времени будет быстрее, но согласно этому блогу я ошибаюсь: http://dbscience.blogspot.com/2008/08/can-timestamp-be-slower-than-datetime.html

Вот почему я, как правило, собираю цифры, используя профилирование, прежде чем решаю, где оптимизировать, так как мое внутреннее чувство может быть совершенно неверным.

Таким образом, это может зависеть от версии MySQL, которую вы используете, но похоже, что datetime может быть быстрее.

3 голосов
/ 01 ноября 2009

Из того, что я могу сказать, основным преимуществом использования TIMESTAMP над DATETIME является возможность автоматического задания значения текущего времени при создании строки и возможность его установки (или другого столбца с небольшими усилиями) на текущий время обновления строки. Это позволяет автоматически создавать и изменять дату.

Из-за других ограничений в столбце TIMESTAMP (например, из-за того, что нельзя принимать даты за пределами определенного диапазона или изменять при изменении часового пояса сервера), DATETIME будет предпочтительнее, если вам не нужно две функции сверху.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...