|
|
|
ПОМОГИТЕ !!!!
|
|||
|---|---|---|---|
|
#18+
есть 2 таблицы: mysql> describe flowtraf; +----------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------------+------+-----+---------+-------+ | doctets | varchar(40) | YES | MUL | 0 | | | srcaddr | varchar(40) | YES | MUL | 0 | | | dstaddr | varchar(40) | YES | MUL | 0 | | | datetime | timestamp(14) | YES | | NULL | | +----------+---------------+------+-----+---------+-------+ и mysql> describe uaix; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | ip | varchar(15) | | MUL | | | +-------+-------------+------+-----+---------+-------+ в таблице uaix содержатся ip адреса и подсети в формате +---------------+ | ip | +---------------+ | 192.117.224.0 | | 192.117.225.0 | | 192.117.226.0 | | 192.117.227.0 | | 193.0.228.% | | 193.0.240.% | | 193.108.112.% | | 193.108.113.% | | 193.108.114.% | | 193.108.115.% | +---------------+ всего mysql> select count(*) from uaix; +----------+ | count(*) | +----------+ | 3980 | +----------+ а в flowtraf: mysql> select * from flowtraf limit 10; +---------+---------------+---------------+----------------+ | doctets | srcaddr | dstaddr | datetime | +---------+---------------+---------------+----------------+ | 84 | 10.10.1.254 | 10.5.59.3 | 20041027160944 | | 84 | 10.10.1.254 | 10.2.35.30 | 20041027160944 | | 84 | 10.5.59.3 | 10.10.1.254 | 20041027160944 | | 84 | 10.2.35.30 | 10.10.1.254 | 20041027160944 | | 543 | 192.168.0.36 | 193.219.194.8 | 20041027160944 | | 84 | 195.26.19.9 | 195.26.18.201 | 20041027160944 | | 545 | 192.168.0.208 | 62.149.0.140 | 20041027160944 | | 84 | 195.26.18.201 | 195.26.19.9 | 20041027160944 | | 323 | 66.230.226.27 | 195.26.18.201 | 20041027160944 | | 323 | 66.230.226.27 | 195.26.18.201 | 20041027160944 | +---------+---------------+---------------+----------------+ всего: mysql> select count(*) from flowtraf; +----------+ | count(*) | +----------+ | 414750 | +----------+ нужно выбрать записи из `flowtraf` которые удовлетворяют ip и маскам из `uaix` пытаюсь сделать это так: SELECT ft.`srcaddr`,ft.`dstaddr`,SUM(ft.`doctets`) as `kbyte` FROM `flowtraf` ft, `uaix` ua WHERE ft.`srcaddr` LIKE ua.`ip` || ft.`dstaddr` LIKE ua.`ip` GROUP BY ft.`srcaddr`,ft.`dstaddr`; однако mysql уходит на 97% загрузки + о-о-очень долго обрабатывается запрос, по крайней мере я так и не дождался результата. Помогите кто-то, спасите, а то погибаю. Как быть, как правильно организовать структуру, индексы и запросы при таком количестве данных и требуемом результате??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2004, 11:26 |
|
||
|
ПОМОГИТЕ !!!!
|
|||
|---|---|---|---|
|
#18+
О каких индексах может быть речь, у тебя же все через LIKE соединяется. Он индексы не будет использовать если маска поиска не константна начинающаяся с подстроки отличной от "%". У тебя же маска столбец, так что об индексах забудь покрайней мере при такой структуре данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2004, 12:50 |
|
||
|
ПОМОГИТЕ !!!!
|
|||
|---|---|---|---|
|
#18+
Могу предложить тебе разбить каждое из вышеуказанных полей для ip на четыре целочисленных поля. построить по ним индексы и соединять таблицы по ним. Причем у последних 2х-3х полей в ip-адресе разрешить значение null соответствуещее * в маске. Подробнее сейчас не опишу - занят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2004, 13:01 |
|
||
|
ПОМОГИТЕ !!!!
|
|||
|---|---|---|---|
|
#18+
ты предлагаешь разбить ip только в таблице `uaix` или в обеих? дело в том, что в `flowtraf` ip разбить не получится, т.к. данные в нее экспортируются с помощью flow-export(утилиты netflow). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2004, 13:50 |
|
||
|
ПОМОГИТЕ !!!!
|
|||
|---|---|---|---|
|
#18+
Я предлягаю разбить ip в каждой из таблиц. К сожалению не сталкивался с flow-export, но могу предложить заполнять с его помощью некую промежуточную таблицу, а уже на основании этой таблицы периодически (не думаю что такой 'тяжелый' запрос требуется часто) заполнять flowtraf. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2004, 01:47 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=32758657&tid=1854677]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
154ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 491ms |

| 0 / 0 |
