|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Victor Sudakov 2:5020/400 23 Dec 2002 19:30:55 To : Eugene M Zheganin Subject : Re: Учет тpаффика -------------------------------------------------------------------------------- Eugene M. Zheganin wrote: > VS> Так вот скрипт на awk вида > VS> awk '{total[$2]+=$6} END {while (i in total) print i, total[i]}' < > VS> table > VS> будет почти всегда быстрее, чем > VS> select sum(octets) from table group by dstIP; > VS> в силу того, что awk проедет по таблице ровно один раз и накопит все > VS> результаты в массиве total, тогда как СУБД будет елозить по таблице > VS> многократно (скорее всего понадобится один проход на каждое значение > VS> dstIP). По крайней мере PostgreSQL и MySQL вели себя именно так и > VS> проигрывали. Я даже наблюдал в PostgreSQL парадоксальный результат: > VS> когда поле dstIP было проиндексировано, время генерации отчета резко > VS> возрастало. > VS> Hе следует недооценивать мощности простых инструментов. > Извини, может я и самодовольный идиот 8)), но на данном этапе не поверю. Hет > индексов, не собрана статистика, база не вакуумирована и т.д. Давай мерять. Я Померяй, расскажешь о результатах здесь. > выгружу из своей базы с 15 миллионами записей как раз в таком > формате текстовый дамп, и поглядим на конкретные цифры на одной и > той же машине. Только скрипт с тебя. Или конкретно этому скрипту > можно подсовывать stdout таблицы из текста ? Да, можно прямо на stdin. В приведенном выше скрипте одна ошибка, на самом деле следует читать так: awk '{ total[$2]+=$6 } END { for (i in total) print i, total[i] }' < table.txt эквивалентный SQL запрос будет select dstIP, sum(octets) from table group by dstIP; Я мерял на файле размером 866M, 17750277 строк, PostgreSQL версии 7.2.3 таблица создавалась с нуля путем "copy from file", потом индексировалась по полю dstip. Hо наличие или отсутствие индекса, как оказалось, на скорость практически не влияет. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/149@fidonet http://vas.tomsk.ru/ --- ifmail v.2.15dev5 * Origin: Golden Bough (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/6640790e4c1f.html, оценка из 5, голосов 10
|