日期:2014-05-18  浏览次数:20580 次

关于java数据存储的问题
小弟我之前把将近28W条数据存到了mysql数据库里面,因为每条数据都要先计算一个值,算完后再存,结果存了10分钟。。。。

现在我想把数据取出来,先用ResultSet存着,再用作其他用处,但是发现如果sql语句写的是全部取出的话,ResultSet最后是null的,就是一条也没取出来, 然后我把sql 改成了限制前10000条, 就是limit 1,10000,就有结果了。  


我想问下是不是ResultSet存不下那么多数据啊? 最多能存多少呢? 如果存不下,有没有什么其他的办法取出来放到内存中, 小弟我最近在做毕设,以前没有用到过这么多数据,所以不太了解,还请大家帮帮我。

------解决方案--------------------
你一定要把数据一下都Load到内存么...
------解决方案--------------------
你数据几百万条?数据量大就分批取了,
------解决方案--------------------
从数据库往内存里读数据是要有节制的,如果数据量比较大就要考虑分页读,处理完毕后,再读下一页。
------解决方案--------------------
那你试一下把jvm调大一部再试试。如果调完后可以取出来说明是jvm装不下了,还有就是try catch 看看有没有异常
------解决方案--------------------
这个跟数据库本身缓存有关,还与jvm内存分配有关;
不过对于大数据量,一般都不会一下将所有结果查询出来,而是分批处理,最后将结果集合并组装得到想要的结果;能用java逻辑实现的,千万不要硬撑数据库,这样对数据库的性能影响很大,对于单机软件不明显,如果对于并发高的系统,影响非常明显。