是这样的,我要处理的数据不是一次性导入的,而是分次导入到mysql里面,然后要处理的时候选择出来处理。
但是我发现从数据库里取一条数据然后处理这样速度太慢,
然而一次性全部读入内存又显得不太科学,容易爆吧,因为数据量容易很大。问下,有没有什么两全齐美的方法呀?JAVA中list容量最大是多少? 

解决方案 »

  1.   

    List就是一个数组,你想放多少就放多少,不过过多会引起outofmemory的异常
    可以分批取出,分批处理
    以上个人观点
      

  2.   

    Java的ArrayList<>是无所谓容量的,这个容量完全是看你的内存的。这要看你MySQL的数据有多少? 以前我最多处理过30-40G的Log吧。
    不过尽量都是部分读入再处理。也就是每次读入几百兆的文件,然后再处理,这个是可以承受的。
    都读入内容,有时候是不可能的。硬件是最终的制约条件。
    你看看能不能把大数据,先划分为若干小的数据另外,你的MySQL在Linux下,应该支持内存数据库,BerkeleyDB,可以利用。
      

  3.   

    LZ看下http://hi.baidu.com/kaka888/blog/item/26f59a3dacbb8701baa167fe.html
      

  4.   

    请问如何分批从mysql数据库中读入且不重复?