Apache.RU - Webboard
Вернуться
join и диапазон значений (Wanenhalf) 24/06 - 11:51:41
Re: join и диапазон значений (Dinky) 24/06 - 19:33:19
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]
спасибо.
[Это сообщение - спам!]
Последние сообщения из форума
15632
|
|