Индексирование datetime в MySQL - PullRequest
2 голосов
/ 11 мая 2010

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

  1. Сохранить дату и время как двойное (с помощью метки времени unix)
  2. Сохранить дату и время как дату и время

Приложение, генерирующееданные временной метки могут выводить любой формат.К сожалению, datetime будет ключевым для этой конкретной структуры данных, поэтому скорость будет иметь значение.

Кроме того, возможно ли создать индекс для выражения?Например, индекс в UNIX_TIMESTAMP(mydate), где mydate - это поле в таблице, а UNIX_TIMESTAMP - функция mysql.Я знаю, что Postgres может сделать это .Я думаю, что в mysql должен быть способ.

Ответы [ 2 ]

3 голосов
/ 11 мая 2010

Я не думаю, что один из методов будет намного быстрее, чем другой, но если вы выберете «datetime», будет намного проще работать со стандартными функциями даты и времени.

MySQL не поддерживает функциональные индексы .

0 голосов
/ 12 ноября 2010

Я думаю, что использование целого числа будет быстрее, потому что where datetime >= '2010-09-30 01:31:41' никогда не попадет в индекс. Однако where intTimestamp >= 237492347 будет.

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