|
Оптимизация insert select'a
|
|||
---|---|---|---|
#18+
Существует запрос 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 млн. в день ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2003, 09:47 |
|
Оптимизация insert select'a
|
|||
---|---|---|---|
#18+
Наличие выражения в group by заставит сервер просматривать записи одна за другой, не используя для этого индексы.. Нельзя тут сделать group by f_loginsrc,f_logindst,f_typesrc,f_typedst,fsrc,fdst ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2003, 17:18 |
|
Оптимизация insert select'a
|
|||
---|---|---|---|
#18+
Увы нет. последовательное построение нарушит необходимую уникальность. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2003, 01:24 |
|
Оптимизация insert select'a
|
|||
---|---|---|---|
#18+
как вариант - добавить в БД еще одно поле и писать в него какой-нибудь хеш (md5, sha1 или что сам захочешь) от указанных в GROUP BY полей md5(concat(f_loginsrc,':',f_logindst,':',f_typesrc,':',f_typedst,':',fsrc,':',fdst)) это конечно будет избыточными данными, но работать должно быстрее (ИМХО) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2003, 13:38 |
|
|
start [/forum/topic.php?fid=47&msg=32284023&tid=1855745]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 308ms |
total: | 460ms |
0 / 0 |