Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (3) [1] 2 3  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Группировка по timestamp
12345  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 384
Пользователь №: 29235
На форуме: 5 лет, 7 месяцев, 12 дней
Карма: 1




CREATE TABLE IF NOT EXISTS `building_history` (
`id` int(11) unsigned NOT NULL,
`id_user` mediumint(8) unsigned NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`num_pole` smallint(5) unsigned NOT NULL,
`id_building` enum('201','202','203','204','205','206','207','208') NOT NULL,
`action` enum('1','2','3') NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `building_history`
ADD PRIMARY KEY (`id`),
ADD KEY `date` (`date`);

ALTER TABLE `building_history`
MODIFY `id` int(11) unsigned NOT NULL AUTO_INCREMENT;



Необходимо получить статистику за последние 30 дней(на каждый день), учитывать только те записи, где action = 1


Делаю так
SELECT id_building, COUNT(1) AS cnt, CAST(`date` AS DATE)  AS date2
FROM `building_history`
WHERE `action` = 1 AND date > DATE_ADD(NOW(), INTERVAL - 30 DAY)
GROUP BY date2, `id_building`



При учете, что в таблице 3.500.000 записей(165 мб) запрос выполняется 2.5 секунд.


Может можно сделать выборку быстрее?




UPD: Условие date > DATE_ADD(NOW(), INTERVAL - 30 DAY) можно откинуть
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1451
Пользователь №: 28976
На форуме: 5 лет, 8 месяцев, 1 день
Карма: 83




EXPLAIN нужен.
А вообще поставьте индекс на дату

проверил у себя (3,197,260 записей)
Отображает строки 0 - 29 ( 144,125 всего, Запрос занял 0.1632 сек.)

Это сообщение отредактировал Kusss - 12.10.2016 - 17:14
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
12345  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 384
Пользователь №: 29235
На форуме: 5 лет, 7 месяцев, 12 дней
Карма: 1




Получаю


id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE building_history ALL date NULL NULL NULL 3448593 Using where; Using temporary; Using filesort
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1451
Пользователь №: 28976
На форуме: 5 лет, 8 месяцев, 1 день
Карма: 83




ну все верно. Индекс для поля date нужно поставить.
ALTER TABLE  `building_history` ADD INDEX (  `date` ) ;

Так как в запросе используются все записи.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
12345  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 384
Пользователь №: 29235
На форуме: 5 лет, 7 месяцев, 12 дней
Карма: 1




user posted image

user posted image

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
12345  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 384
Пользователь №: 29235
На форуме: 5 лет, 7 месяцев, 12 дней
Карма: 1




вроде как индекс выставлен
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1451
Пользователь №: 28976
На форуме: 5 лет, 8 месяцев, 1 день
Карма: 83




ХМ ... это если групперовать по сессии
84,855 всего, Запрос занял 1.5051 сек.

это по ip
19,184 всего, Запрос занял 0.4608 сек.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1451
Пользователь №: 28976
На форуме: 5 лет, 8 месяцев, 1 день
Карма: 83




блин ,я дурак. У меня datetime ,а не timestamp
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
12345  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 384
Пользователь №: 29235
На форуме: 5 лет, 7 месяцев, 12 дней
Карма: 1




Kusss
Я то думаю, что-то не сходится smile.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
12345  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 384
Пользователь №: 29235
На форуме: 5 лет, 7 месяцев, 12 дней
Карма: 1




так что, есть у кого какие мысли?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
12345  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 384
Пользователь №: 29235
На форуме: 5 лет, 7 месяцев, 12 дней
Карма: 1




Условие date > DATE_ADD(NOW(), INTERVAL - 30 DAY) можно откинуть
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15911
Пользователь №: 6543
На форуме: 8 лет, 5 месяцев, 26 дней
Карма: 300

Трезвый :
6 лет, 3 месяца, 5 дней


Одним запросом принципиально?


--------------------
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15911
Пользователь №: 6543
На форуме: 8 лет, 5 месяцев, 26 дней
Карма: 300

Трезвый :
6 лет, 3 месяца, 5 дней


Цитата (12345 @ 12.10.2016 - 14:23)
Условие date > DATE_ADD(NOW(), INTERVAL - 30 DAY) можно откинуть

Не понял... А в чем фишка тогда?


--------------------
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
12345  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 384
Пользователь №: 29235
На форуме: 5 лет, 7 месяцев, 12 дней
Карма: 1




Цитата
Одним запросом принципиально?

нет

Цитата
Не понял... А в чем фишка тогда?

фишка в CAST(`date` AS DATE)

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15911
Пользователь №: 6543
На форуме: 8 лет, 5 месяцев, 26 дней
Карма: 300

Трезвый :
6 лет, 3 месяца, 5 дней


Цитата (12345 @ 12.10.2016 - 14:49)
фишка в CAST(`date` AS DATE)
Ну напиши
DATE(`date`) AS `date2`
хотя наверно мало что изменится.


--------------------
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (3) [1] 2 3  Ответ в темуСоздание новой темыСоздание опроса