opium
@opium
Просто люблю качественно работать

Как сделать быструю группировку по дням и по часам в mysql?

Вот тут описывается стандартный путь.
accross.su/blog/view/131
И он бы работал если бы записей было бы не миллион.
Как делать быстрые временные группировке в mysql при большом количестве записей?
  • Вопрос задан
  • 8010 просмотров
Пригласить эксперта
Ответы на вопрос 5
savostin
@savostin
Еще один программист
Добавить столбцы с вычисленными значениями (можно триггерами при вставке) в int и индексами по ним.
Ответ написан
hell0w0rd
@hell0w0rd
Просто разработчик
индексы?
Ответ написан
Комментировать
script88
@script88
Может стоит посмотреть в сторону партиций? dev.mysql.com/doc/refman/5.5/en/partitioning-pruning.html
Ответ написан
Комментировать
@Push_Ok
быстро можно только если сделать хранилище отдельное
дата | кол-во
и инкриментить с общим инсертом. (update order_counter set count=count+1 where date=date_format(date,'и какой типо групперовки вам нужен'), надо проверить что будет делать replace или insert с on dublicate key для самой первой встаки в идеале вместо update replace тогда и запись не надо будет проверять что есть.

либо опишите задачу подробнее, если в выборки еще фильтр какой-то есть,
то решение со счетчиком отдельным не поможет.
Ответ написан
Комментировать
KEKSOV
@KEKSOV
Попробуйте следующий вариант — 1. Это для группировки по дням
SELECT…
FROM…
GROUP BY UNIX_TIMESTAMP( поле с датой и временем ) DIV 24 * 3600

2. Это для группировки по часам
SELECT…
FROM…
GROUP BY UNIX_TIMESTAMP( поле с датой и временем ) DIV 3600

Если все еще будет тормозить (скорее всего так и будет), то эти два поля нужно добавлять к таблице и строить по ним индекс
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы