繁体   English   中英

根据用户的IP地址获取其来自的国家/地区

[英]Get country a user is from based on their ip address

我有两个表,一个表(ipcountry)包含以下列:

low, high, country 

如果IP地址在高低之间,则属于该国家/地区

另一个表(日志)的定义如下:

username, ipaddr

日志表约为100 MB。 我想根据用户的IP地址有效地找到用户所在的国家/地区。 我尝试使用以下查询:

select distinct username from `logs` 
left join `ipcountry` on `logs`.ipaddr between `ipcountry`.low and `ipcountry`.high
where `logs`.ipaddr='<my ipaddress goes here>'

但是,执行时间太长(我在一分钟后将其杀死)。 我想知道,还有更好的方法吗?

解释选择结果:

在此处输入图片说明

编辑:我想要做的是获取与ipaddr相关联的所有用户名,并在每一行旁边显示每个用户名来自的国家(都将是同一国家)

请在用户名和ipaddr上放置多列索引,它将优化查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM