大数据量比较

guotao1982 2006-06-16 01:19:13
现有一个需求:
有一个文本文件,有几十万手机号码,需要跟数据库里面的黑名单(七八十万),无效号(一两百万)进行比较过滤,黑名单,无效号存在两个单独的表,不知道通过java程序有什么好的解决方案,能够提高其速度
...全文
645 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
darkula 2006-10-31
  • 打赏
  • 举报
回复
一看处理手机号...SP的吧?...来,同行握手先;

给你几个我现在在用的处理方案:

1.扩大JVM的虚拟内存,按楼上几位说的,一次性读入一个SET,然后做比较;

2.导出数据为文本,一地区一个或多个文本,你下发时也是按地区发吧?就这样按地区过滤;

3.写成一个黑名单处理系统,用户上传黑名单,然后一个个黑名单文件/表来进行过滤,生成过滤后的文本给用户;
awded 2006-09-25
  • 打赏
  • 举报
回复
这样的数据量,只有排序、建索引才能解决了。HashMap在数据量比较大的情况下,速度会非常的慢,肯定无法解决你的问题
allright_flash 2006-09-21
  • 打赏
  • 举报
回复
sql处理最好了!
hbwhwang 2006-08-09
  • 打赏
  • 举报
回复
1000万的hashmap我都用过?强~~
我的才100万就outofmemory了
at4zhx 2006-08-01
  • 打赏
  • 举报
回复
1000万的hashmap我都用过,没有问题的,但java读文件的io开销会比较大.把文本导入数据库,建立索引,利用数据库查询也很快,看你是用一次还是经常用,是否部分更新文本里面的内容而定.
master_jt 2006-07-21
  • 打赏
  • 举报
回复
直接数据库查吧200W条记录不算什么,建了索引2000w都很快
enenend 2006-07-19
  • 打赏
  • 举报
回复
二百万的hashmap,牛啊。索引才是正道!
XiXiangHou 2006-07-13
  • 打赏
  • 举报
回复
HashMap 过了几万就非常缓慢!!!
xxu 2006-07-09
  • 打赏
  • 举报
回复
将到"黑名单(七八十万),无效号(一两百万)"全部抓到内存,并以HashMap保存.
然后逐条检查"文本文件,有几十万手机号码"
marcal_z 2006-07-04
  • 打赏
  • 举报
回复
查查数据结构呢。
xzwsun 2006-07-03
  • 打赏
  • 举报
回复
建索引,排序,写sql
echohere 2006-06-29
  • 打赏
  • 举报
回复
建立索引是最快的。
XiXiangHou 2006-06-27
  • 打赏
  • 举报
回复
如果字节使用JAVA程序,可以考虑,使用跳转表模式。
long l = Long.parsLong(手机号码)。

黑名单[]=new byte[MAX];
黑名单[l手机号]=1;

然后将需要比较的手机号上数组里找。
如果内存消耗太大,将它转换成位描述。

另外,强烈建议使用数据库模式进行处理
li_zero 2006-06-26
  • 打赏
  • 举报
回复
导入数据库,建索引,查询搞定。
Student02370236 2006-06-23
  • 打赏
  • 举报
回复
如果要在效率上提高的话就要去查一下有没有好的算法
或者进行分块处理
guotao1982 2006-06-20
  • 打赏
  • 举报
回复
还有哪位高手回答吗
ll42002 2006-06-16
  • 打赏
  • 举报
回复
导入数据库,然后用sql语句实现。
这个估计是最快的。

249

社区成员

发帖
与我相关
我的任务
社区描述
其他产品/厂家
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧