Apache.RU - Webboard
Вернуться
join и диапазон значений (Wanenhalf) 24/06 - 11:51:41
Re: join и диапазон значений (Dinky) 24/06 - 19:33:19
> Original message text:
> From:
> Wanenhalf - 24/06 - 11:51:41
> Subject:join и диапазон значений
> -----------------
> наверняка кто-нибуть уже сталкивался с этой задачей..
>
> есть две таблицы.
> statistic_ip содержит интересующее нас поле IP.
> geo_ip - содержит три поля:
> первое - некий ID,
> второе и третье - диапазон значений.
>
> Нужно одним запросом, получить соответствие содержимого statistic_ip и ID из geo_ip
>
> скорее всего запрос должен быть:
> [src]
> select
> ip.customer,
> ip.ip,
> city.id
> from statistic_ip as ip left join geo_ip as city on (city.first<ip.ip and city.last>ip.ip)
> [/src]
>
> но этот запрос выполняется очень долго (как минимум 626 секунд - больше я не стал ждать)
> в чем причины такого долгого выполнения, и есть ли возможность переделать запрос, структуры таблиц, что бы решить проблему?
>
> структура statistic_ip:
> [src]
> CREATE TABLE statistic_ip (
> ip int(10) unsigned NOT NULL default '0',
> `load` int(7) NOT NULL default '0',
> uid_site int(11) NOT NULL default '0',
> customer int(11) NOT NULL default '0',
> `date` int(10) NOT NULL default '0',
> PRIMARY KEY (ip,uid_site,date)
> ) TYPE=MyISAM;
> [/src]
>
> структура geo_ip:
> [src]
> CREATE TABLE geo_ip (
> id int(8) NOT NULL default '0',
> first int(11) NOT NULL default '0',
> last int(11) NOT NULL default '0',
> KEY first (first),
> KEY last (last),
> KEY firstlast (first,last)
> ) TYPE=MyISAM;
> [/src]
>
>
>
> спасибо.
>
From:
Dinky - 24/06 - 19:33:19
Subject:join и диапазон значений
-----------------
просто тут не получится... кстати, а зачем ВСЕ записи враз из statistic_ip? и почему именно left join, если города все равно нужны...
>наверняка кто-нибуть уже сталкивался с этой задачей..
я нет, но предложил бы добавить geo_ip_id в таблицу statistic_ip и заполнять его при ВСТАВКЕ записей туды.
--
Dmitry
[Это сообщение - спам!]
Последние сообщения из форума
15632
|
|