PG数据库如何快速的查询ip归属地 (2种方法)

阅读: 评论:0

PG数据库如何快速的查询ip归属地 (2种方法)

PG数据库如何快速的查询ip归属地 (2种方法)

第一种方法:

数据库种保存的ip地址段,归属地的数据结构如下:

要求查询ip地址:66.249.79.3的归属地信息。

一,用函数方式。

 函数原理就是将ip转换成数值,66*256^3+249*256^2+79*256^1+3*256^0 = …………

在数据库种执行以下函数:

create or replace function inet_aton(ip text) returns int8 as $$
declarev int;res int8 := 0;i int := 3;beginforeach v in array string_to_array(ip, '.') loopres := res+v*(256^i);i := i-1;end loop;
return res;
end;
$$ language plpgsql;

 函数执行后,可以在数据库种增加2列,保存转换后的整数类型的IP开始 结束标识。

如何查询定位归属地?使用sql查询,

select * from dim_ip_area dia where inet_aton('66.249.79.3') >=ipstart_num AND  inet_aton('66.249.79.3')<=ipend_num ;

结果显示

耗时:4.933s

可以说效果比较慢。

二、直接用范围查询。

修改ip的类型 &#x

本文发布于:2024-01-31 01:01:17,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170663408024185.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:种方法   归属地   快速   数据库   PG
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23