有一个需求更新5W数据,求一个好的方案 5C

有一个需求更新5W数据,求一个好的方案,java,mysql,redis

5个回答

可以采用数据库批量更新,比如一次更新50条

qq_37486884
违羌 如果批量更新时有某一条失败了怎么办?后面的继续还是不继续?还是说直接就rollback?
大约一年之前 回复

package me.gacl.demo;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import me.gacl.utils.JdbcUtils;
import org.junit.Test;

/**

  • @ClassName: JdbcBatchHandleByStatement
  • @Description: 使用Statement实现JDBC批处理操作
  • @author: 孤傲苍狼
  • @date: 2014-9-20 下午10:05:45
    *
    */
    public class JdbcBatchHandleByStatement {

    @Test
    public void testJdbcBatchHandleByStatement(){
    Connection conn = null;
    Statement st = null;
    ResultSet rs = null;
    try{
    conn = JdbcUtils.getConnection();
    String sql1 = "insert into testbatch(id,name) values(1,'aaa')";
    String sql2 = "insert into testbatch(id,name) values(2,'bbb')";
    String sql3 = "insert into testbatch(id,name) values(3,'CCC')";
    String sql4 = "insert into testbatch(id,name) values(4,'DDD')";
    String sql5 = "update testbatch set name='gacl' where id=1";
    String sql6 = "insert into testbatch(id,name) values(5,'FFF')";
    String sql7 = "delete from testbatch where id=2";
    st = conn.createStatement();
    //添加要批量执行的SQL
    st.addBatch(sql1);
    st.addBatch(sql2);
    st.addBatch(sql3);
    st.addBatch(sql4);
    st.addBatch(sql5);
    st.addBatch(sql6);
    st.addBatch(sql7);
    //执行批处理SQL语句
    st.executeBatch();
    //清除批处理命令
    st.clearBatch();
    }catch (Exception e) {
    e.printStackTrace();
    }finally{
    JdbcUtils.release(conn, st, rs);
    }
    }
    }

可以根据实际需要,将5万条数据集合截取为10个集合,每个集合是5千数据,然后开启10个线程,每个线程链接一次数据库,sql批量更新对应的5千数据。

https://ask.csdn.net/questions/698319
这个是和你类似的场景,我当时给出的答案,你的模仿着写就行了,望采纳!

就使用jdbc原始的方法,在建立连接后,
第一步 创建statement,
第二步 设置不自动提交,开启事务,conn.setAutoCommit(false)
第三步 执行sql,直接5w条sql一次批量执行,jdbc完全支持,项目中测过30w的5万执行6次,每次一分钟左右
第四步 判断是否有异常,有异常事务回滚,没有异常执行成功。
第五步 提交conn.commit()

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!

相似问题

1
使用SSM框架 将mysql数据库中建立的表的数据插入到postgresql数据库中的同名表内。求一个demo
1
给定一个正整数 N,需要把它分解成至少两个不同的整数和,问有多种不同的分解方案
0
数据库集群,如果其中有一个数据库挂掉了,如何监控
3
第三方应用接入数据传输加密方案
3
求一个website网站源码连接数据库的。
1
如何用python提取excel中某些含有特定字符串的所有数据并写入另一个excel
0
把一个球坐标的数据旋转90°
1
求助cocos大佬帮忙写一个如下需求的控件demo
2
如何自动抓取公司网站上的数据并输出成Excel?
1
MacOS app 存储私有数据有哪些解决方案?
2
在django中如何在form里显示数据库中已有的数据,并可以更新数据?
2
websocket消息推送,如何实现不频繁查询数据库,还能将数据库中数据量实时更新到前端界面上?
0
java可以将word模板中的某一表格根据数据的记录数copy多个吗?
1
项目做数据库操作的时候,如何让数据库知道,每一条sql都是谁发出的?
1
是否有插件可以实现一个需求片段在多个文档展示?
1
求大佬看看 ,springboot框架下整了一个数据库的增加修改删除的小东西,然后报了实例化什么的这个错
0
和先向右再向左移动被认为是不同的方案。
0
对于一个1行n列的数据集,sas如何引用具体的各个数值
4
一个list中有很50W的uuid,如何根据uuid在100W的数据库中快速匹配出这50Wuuid对应的数据并返回
1
三组数据如图,结果为其中一个,有大量数据样本,如何实现输入新数据选择较为可能的结果?