Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация insert select'a / 5 сообщений из 5, страница 1 из 1
03.10.2003, 09:47
    #32282808
SmD
SmD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация insert select'a
Существует запрос
insert into Statistics.TIP_Hosts_200309
(f_service,f_loginsrc,f_logindst,f_typesrc,f_typedst,fsrc,fdst,finb,foutb,fdate)
select 24,f_loginsrc,f_logindst,f_typesrc,f_typedst,fsrc,fdst,sum(finb),sum(foutb),fdate
from Statistics.TIP_NetFlow_200309 where fdate=20030912
group by concat(f_loginsrc,':',f_logindst,':',f_typesrc,':',f_typedst,':',fsrc,':',fdst)

можно ли его оптимизировать как-нить?
Например:
insert into Statistics.TIP_Hosts_200309
(f_service,f_loginsrc,f_logindst,f_typesrc,f_typedst,fsrc,fdst,finb,foutb,fdate)
select SQL_BIG_RESULT SQL_NO_CACHE 24,f_loginsrc,f_logindst,f_typesrc,f_typedst,fsrc,fdst,sum(finb),sum(foutb),fdate
from Statistics.TIP_NetFlow_200309 where fdate=20030912
group by concat(f_loginsrc,':',f_logindst,':',f_typesrc,':',f_typedst,':',fsrc,':',fdst)

количнство записей по селекту сказать сложно, но в таблице хостов их порядка 3 млн. в день
...
Рейтинг: 0 / 0
03.10.2003, 17:18
    #32283627
Хрен
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация insert select'a
Наличие выражения в group by заставит сервер просматривать записи одна за другой, не используя для этого индексы..

Нельзя тут сделать group by f_loginsrc,f_logindst,f_typesrc,f_typedst,fsrc,fdst ?
...
Рейтинг: 0 / 0
04.10.2003, 01:24
    #32283948
SmD
SmD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация insert select'a
Увы нет.
последовательное построение нарушит необходимую уникальность.
...
Рейтинг: 0 / 0
04.10.2003, 13:38
    #32284023
Макс М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация insert select'a
как вариант - добавить в БД еще одно поле и писать в него какой-нибудь хеш (md5, sha1 или что сам захочешь) от указанных в GROUP BY полей
md5(concat(f_loginsrc,':',f_logindst,':',f_typesrc,':',f_typedst,':',fsrc,':',fdst))

это конечно будет избыточными данными, но работать должно быстрее (ИМХО)
...
Рейтинг: 0 / 0
04.10.2003, 13:40
    #32284025
Макс М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация insert select'a
> добавить в БД

я, конечно же, имел ввиду "Добавить в таблицу"

ЗЫ
и почему здесь свои мессаги редактировать нельзя :(
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация insert select'a / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]