我试了一下,可以直接用 long 数组存储黑名单,长度 2 千万的 long 数组占内存不过 160M 的样子,这个前提下完全可以再通过流来读取在订用户名单,每读取一行就生成一行,这个过程不会明显增加内存。
右键-run configuration-在jvm argument中加入
table Customers(phonenumber, ...) table Blacklists (phonenumber,...)SELECT DISTINCT Customers.phonenumber from Customers, Blacklists WHERE Customers.phonenumber NOT IN (SELECT phonenumber FROM Blacklists);
所以加上这两个options可以允许占用1G内存,如果你想也可以改成-Xms1024M -Xmx2048M
运行格式基本上11楼那样
table Blacklists (phonenumber,...)SELECT DISTINCT Customers.phonenumber from Customers, Blacklists
WHERE Customers.phonenumber
NOT IN (SELECT phonenumber FROM Blacklists);
别的不清楚,只回答这个
在eclipse的快捷方式里加参数,如:
D:\eclipse\eclipse.exe -Xms1024M -Xmx1024M然后重新启动eclipse
我的想法是把黑名单中的数据每一万条导入ArrayList