chinaren1314 2012-12-27 18:56
浏览 370
已采纳

while循环查询和更新数据的速度问题

每次循环会select出几千--几万不等的数据,然后对其处理后再更新回去。
经过计算,每分钟才处理3000条数据左右,太慢了,请大家帮着查看。
where条件很简单,应该不存在索引问题。
是不是和数据库链接的建立有关系?
请大家多多指教。
代码大概如下:

   Statement stmt_Select = con.createStatement();
   Statement stmt_Update = con.createStatement(); 

   while (***)
    {  

           String sql = "select a, b, c from tablename where .......";

           stmt_Select.close();      
           stmt_Select=con.createStatement();

           stmt_Update.close();      
           stmt_Update=con.createStatement();               

           rs = stmt_Select.executeQuery(sql);

    int i = 0;
      while (rs.next()){

           // 这里会对select出来的值进行两次md5加密等
     i = i + stmt_Update.executeUpdate("update tablename set a=......);
      }        

   rs.close();  
    }     
  • 写回答

5条回答 默认 最新

  • a88539170 2012-12-27 20:38
    关注

    建议批量的去执行更新、插入的操作

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥50 汇编语言除法溢出问题
  • ¥65 C++实现删除N个数据列表共有的元素
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗