Эффективный запрос ip-> location

У меня есть две таблицы: одна - ip_group_city из ipinfodb.com , содержащая номера ip_start для определения местоположения IP-адресов, а прочее - это «посещения» с информацией о посетителе веб-сайта, содержащие столбец «ip».

Мне нужно выбрать 10 лучших region_c ode (из ip_group_city), проверяя region_code для каждого IP из таблицы «посещений».

Прямо сейчас я загружаю все IP-адреса из «посещений» в массив и использую эту IP-информацию для запроса ip_group_city:

SELECT region_code
FROM ip_group_city
WHERE ip_start <= INET_ATON(IP_FROM_ARR)
ORDER BY ip_start DESC LIMIT 1

Я не могу создать какой-то вложенный запрос, чтобы выполнить эту работу за меня, потому что сейчас все идет немного медленно :) - это занимает до 30 секунд на моем ноутбуке xampp (AMD Turion x2 2 ГГц, под управлением Windows 7 Ultimate 64-битная версия)

Вот таблица с IP-адресами (посещения)

CREATE TABLE IF NOT EXISTS `visits` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`clientid` mediumint(8) unsigned NOT NULL,
`ip` varchar(15) NOT NULL,
`url` varchar(512) NOT NULL,
`client_version` varchar(64) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=49272 ;

Спасибо

5
задан hummingBird 31 October 2010 в 17:42
поделиться