|
|
|
Группировка DISTINCT в поле Datatime по Год+Месяц (Очень долго)
|
|||
|---|---|---|---|
|
#18+
База 974918 записей и растет. Параметр `ReceivedAt` datetime DEFAULT NULL,INDEX Уникальных записей 487459 из 974918 Формирую результат типа YYYY-MM Запрос (2 всего, Запрос занял 2.5412 сек.) Код: sql 1. 2. 3. Запрос (2 всего, Запрос занял 2.4701 сек.) Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2015, 15:14:52 |
|
||
|
Группировка DISTINCT в поле Datatime по Год+Месяц (Очень долго)
|
|||
|---|---|---|---|
|
#18+
И что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2015, 15:48:23 |
|
||
|
Группировка DISTINCT в поле Datatime по Год+Месяц (Очень долго)
|
|||
|---|---|---|---|
|
#18+
AkinaИ что? Очень долго Ищу других путей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2015, 16:00:39 |
|
||
|
Группировка DISTINCT в поле Datatime по Год+Месяц (Очень долго)
|
|||
|---|---|---|---|
|
#18+
А что ты хочешь? у тебя идёт фуллскан (и ещё хорошо, что по индексу, а не по таблице). Для миллиона записей 2 секунды - вполне нормальный результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2015, 16:04:09 |
|
||
|
Группировка DISTINCT в поле Datatime по Год+Месяц (Очень долго)
|
|||
|---|---|---|---|
|
#18+
Николай Жуков, Вы DISTINCT-ом перелопачиваете всю таблицу в миллион записей. Это так и надо? А потом еще и сортируете полмиллиона выбранных записей по величине, которой даже нет сортируемом наборе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2015, 16:09:38 |
|
||
|
Группировка DISTINCT в поле Datatime по Год+Месяц (Очень долго)
|
|||
|---|---|---|---|
|
#18+
Сейчас ТС скажет, что эти полмиллиона записей надо показать пользователю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2015, 20:04:43 |
|
||
|
Группировка DISTINCT в поле Datatime по Год+Месяц (Очень долго)
|
|||
|---|---|---|---|
|
#18+
tanglirСейчас ТС скажет, что эти полмиллиона записей надо показать пользователю... Да нет все нормально. Нет то Нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2015, 08:50:05 |
|
||
|
Группировка DISTINCT в поле Datatime по Год+Месяц (Очень долго)
|
|||
|---|---|---|---|
|
#18+
tanglirСейчас ТС скажет, что эти полмиллиона записей надо показать пользователю... И что за сокращение ТС ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2015, 09:34:06 |
|
||
|
Группировка DISTINCT в поле Datatime по Год+Месяц (Очень долго)
|
|||
|---|---|---|---|
|
#18+
TopicStarter, автор темы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2015, 10:02:35 |
|
||
|
Группировка DISTINCT в поле Datatime по Год+Месяц (Очень долго)
|
|||
|---|---|---|---|
|
#18+
Николай ЖуковAkinaИ что? Очень долго Ищу других путей 2 секунды тебе на такой запрос долго? сколько ж тебе нужно тогда для счастья? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2015, 13:25:24 |
|
||
|
Группировка DISTINCT в поле Datatime по Год+Месяц (Очень долго)
|
|||
|---|---|---|---|
|
#18+
Николай Жуков, 2 сек. действительно очень долго. В таких случаях нужно делать индекс ГОД+МЕСЯЦ и делать группировку по этим полям: ORDER BY `year`, `month` Для этого придется сделать 1 дополнительную колонку (`date_month`, тип: varchar(7)) и при вставке строки добавить `date_month` = CONCAT(YEAR(значение_ReceivedAt), MONTH(значение_ReceivedAt)) `date_month` - читается как "дата с месяцем", пример: 2015-11 Полный запрос в итоге: SELECT SQL_NO_CACHE ONCAT(YEAR(ReceivedAt), '-',MONTH(ReceivedAt)) AS date FROM SystemEvents AS se GROUP BY `date_month` ORDER BY ReceivedAt DESC Такой запрос должен выполняться моментально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2016, 04:22:09 |
|
||
|
|

start [/forum/topic.php?fid=47&gotonew=1&tid=1832310]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
204ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 554ms |

| 0 / 0 |
