Tengo dos tablas: una es ip_group_city de ipinfodb.com que contiene números de ip_start para determinar la ubicación de IP, y otra es "visitas" con información sobre el visitante del sitio web que contiene la columna 'ip'.Efectivo ip-> consulta de ubicación
Necesito seleccionar top 10 region_code (de ip_group_city) marcando region_code para cada IP de la tabla de "visitas".
En este momento estoy cargando todas las IPs de "visitas" en una matriz y utilizar esa información IP para consultar el ip_group_city por:
SELECT region_code
FROM ip_group_city
WHERE ip_start <= INET_ATON(IP_FROM_ARR)
ORDER BY ip_start DESC LIMIT 1
Soy incapaz de crear algún tipo de consulta anidada que hacer el trabajo para mí, porque ahora mismo las cosas son un poco lentas :) - toma hasta 30s en mi laptop xampp (AMD Turion x2 2GHz, ejecutando Windows 7 última versión de 64 bits)
Aquí está la tabla con direcciones IP (visitas)
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 ;
Gracias
También, consejos sobre otras maneras alrededor son aceptados. Tal vez haya algún otro DB que sea más efectivo para este rey de trabajo. Tengo más de 10.000 IPs en el db que necesito resolver para la geolocalización. – hummingBird
No puedo reproducir el problema. Usando 'ipinfodb_one_table_small' con MySQL 5.1, tu consulta se completa en menos de 10ms para mí (en Linux). Supongo que los 30 son para realizar varias consultas, p. para todas las visitas. Si es así, muestre también la tabla de visitas y cómo la recorre. –
ok, estoy agregando la estructura de la tabla a la pregunta :) – hummingBird