作者eieio (好多目标)
看板java
标题Re: [问题] 资料存取的问题
时间Tue Jul 19 10:48:15 2016
三十万笔应该可以塞 memory 吧
假设你每笔资料可以存成
class Row {
A getA();
B getB();
C getC();
...
}
那麽一次读出来,写进 multimap 里
Multimap<A, Row> map = ListMultimap.create();
SQL="Select * from tableA;";
rs=stmt.executeQuery(SQL);
while (rs.hasNext()) {
Row row = toRow(rs);
map.add(row.getA(), row);
}
应该可以吧?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 67.182.136.78
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1468896501.A.001.html
1F:推 gw10313: 这个跟我想要的方式很像! 感谢你 我试试看 07/19 17:14
2F:→ eieio: 所以有结果了吗? 07/23 09:31
3F:推 gw10313: 嗯嗯 非常感谢 我後来用 multimap完成的我想要的功能 07/24 23:55
4F:→ gw10313: 真的就把资料一次读出来 然後放入记忆体内了 07/24 23:56
5F:推 gw10313: 30万笔资料比我想像的还少一点 记忆体还够XD 07/25 00:02
6F:推 abola921: 简易试算,资料宽度假设1K/per record没接近1M笔前 07/25 00:14
7F:→ abola921: 都可以用这种爆力的方式解决 07/25 00:15
8F:推 abola921: 前提是你的资料不会有dirty read的问题 07/25 00:19