т.е. date хранится в timestamp, а мне необходимо собрать статистику на каждый день по каждому id_building. Через CAST(`date` AS DATE) я timestamp привожу в date. после чего группирую по полученному значению...
Цитата |
Ну напиши DATE(`date`) AS `date2`
|
не помогло
Да понятно что не поможет. Тут дело не в том вовсе. Тут нужно вообще понять, в чем у тебя задача.
Тебе нужно ускорить запрос, как я понял, именно с выборкой по датам. Почему ты решил откинуть самое значимое условие?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
twin
в этой таблице хранится история действий пользователя.
Таблица хранит информацию за 30 дней(за последующие дни удаляется)
Мне же надо сформировать данные для отображения статистики в виде графиков.
Т.е. в итоге я должен получить сколько записей для каждого id_building создавалось каждый день в течении месяца
Если они удаляются, таблица должна уменьшаться. Ты хочешь сказать, что за последние 30 дней в ней хранятся
?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
twinда.
Таблица хранит в себе временную информацию о истории действий пользователя.
Давайте откинем все лишнее и посмотрим на этот запрос
SELECT CAST(`date` AS DATE) AS date2, COUNT(1) AS cnt
FROM `building_history`
GROUP BY date2
Таблица все та же.
Цитата |
Отображение строк 0 - 24 (81 всего, Запрос занял 3.6208 сек.) |
Таблицу прочекай.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (12345 @ 12.10.2016 - 15:14) |
Отображение строк 0 - 24 (81 всего, Запрос занял 3.6208 сек.) |
Как может быть при таком запросе 81 строка, если ты говоришь, что инфа хранится за последние 30 дней?
Цитата (12345 @ 12.10.2016 - 15:22) |
что именно? |
OPTIMIZE TABLE `building_history`
выполни на всякий случай.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата |
Как может быть при таком запросе 81 строка, если ты говоришь, что инфа хранится за последние 30 дней? |
Запутался в базах.
У меня две идентичные по структуре базы.
В одной хранится история почти за 3 месяца, а в другой базе за 1 месяц
Это так, для себя. И запросы выполняю на большой, т.к. по прогнозам, через 3-4 месяца в месяц будет по 3.500.000 записей
twin
выполнил... все так же...
Так... я уже сам запутался....
После каких-то действий, запрос начал выполняться за Запрос занял 0.9079 сек.
SELECT COUNT(1), DATE(`date`) AS date2
FROM `building_history`
WHERE `action` = 1
GROUP BY date2
Но по моему это тоже много
На action попробуй индекс добавить. А на date он кстати и ни к чему тут.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
twin
Отлично, спасибо!
Убрал с date и поставил на action
Запрос занял 0.0317 сек.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.