Новости | Документация | Download | Webboard | FAQ | Поиск | Контакты

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]



спасибо.


[Это сообщение - спам!]

Последние сообщения из форума

 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
15632




  Copyright Apache.ru © 1999-2017, All Rights Reserved Разработка сайта: Inside.ru  
  РЕКЛАМА НА САЙТЕ: |