需求是这样,数据库里有1万多条数据,主键是自增长的id,文章id,文章名称,文章内容,每天要从网上抓取一定量的数据更新到数据库里比如要更新的内容是文章id:17029 ,文章名称:java学习心得,文章内容:首先从数据库中得到所有的文章id,然后更新的文章id做比较,如果不相同则存到数据库中,实现很简单,就是想讨论出个效率高的方法我的想法是把所有的1万多的文章id保存到一个ArrayList里,抓取的更新的文章id也存到一个ArrayList里(大约10条左右)
然后把更新的文章挨个取出,另外一个大的ArrayList用contains方法判断不过总觉得这种方法效率不高,不知道各位牛人有没有效率高的方法

解决方案 »

  1.   

    在数据库里建中间表,存两个id的集合,用数据库比较,这样比ArrayList速度快很多很多....................
      

  2.   

    存两个id的集合的时候是不是还要比较之后才能存储?你的意思是我把更新的id存到一个新建的表里,然后用原来数据很多的id和新id比较,生成一个新表?
      

  3.   

     id上要有索引的话1w不是问题 10w也不是问题
      

  4.   

    table1存现有的文章,table2存新抓的文章,table1和table2里的内容比较,再看需要更新还是插入
      

  5.   

    当然用sql文解决效率高啊。
    select count(*) from table where 文章id = '抓取的更新的文章id'
    还好抓取的更新的文章id不多,也就大约10条左右。
    for(10次){
    //上面sql文count>0的时候插入操作。
    }