对于一个保存了 ip 起止地址的巨型文本数据库,怎么优化才能既方便查找又节约空间?

2016-01-12 15:16:54 +08:00
 xuboying
数据格式如下
0.0.0.0,1.1.1.0, 信息 0
1.1.1.1,2.2.2.2, 信息 1
2.2.2.3,2.5.5.5, 信息 3
2.5.5.6,...
文本数据量非常大,不方便一次全读入内存,如果 grep 一个 ip 地址也可能落在区间找不到
有什么方法可以既压缩数据,又方便查找么
sqlite 可以么,能否支持查询 ip 区间
(程序语言希望用 python 实现)
4816 次点击
所在节点    程序员
24 条回复
Orzzzz
2016-01-12 23:20:19 +08:00
zgrep
KentY
2016-01-13 05:02:35 +08:00
先说说有多大
caocheng
2016-01-13 14:15:36 +08:00
比如 postgres 数据库有 inet 类型
xuboying
2016-01-14 23:31:29 +08:00
@0987363 @KentY @Livid @Orzzzz @TaMud @caocheng @congeec @h4x3rotab @luban @strwei @raysonx
感谢各位帮忙献计献策,我最终用了 stardict 的格式的解决方案,为 csv 数据建立索引,再用二分查找法搜索,数据库不熟悉,没有采用,具体见 https://code.csdn.net/snippets/1556752

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/250155

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX