estoy haciendo una consulta en mi BD donde la idea es saber de que paises me visitan los usuarios, el detalle es que el dato que necesito es la lista de paises y cuantos usuarios unicos me han visitado (utilizo l aip del visitante para definir un usuario único)
bueno, tengo una BD con los rangos de ip de todos los paises son 102.339 registros y tengo otra tabla con las ip de los usuarios que me visitan (hay ip repetidas pues son usuarios recurrentes)
he escrito el siguiente código para hacer la consulta:
Código PHP:
Ver original
SELECT T1.ip_publica AS ip, T2.*, T2.country_name AS pais, COUNT(T2.country_name) AS total FROM (SELECT * FROM stat_user GROUP BY ip_publica) AS T1 LEFT JOIN stat_country AS T2 ON INET_ATON(T1.ip_publica)>=T2.IP_FROM AND INET_ATON(T1.ip_publica)<=T2.IP_TO GROUP BY pais ORDER BY total DESC LIMIT 0,10
el resultado es el esperado, pero se demora +/- 30 segundos en arrojar el resultado.
Alguien conoce una mejor forma de hacer esta consulta?
Muchas gracias por su tiempo y colaboración.