java: mysql 每次删除定量数据

问题描述:

一次删除太多数据(eg.100万)会对 mysql 产生太大压力,故此需要分多次进行删除数据。

1.贴核心样例代码(java 实现)
	int id = 10;
    String sqlDelete = "delete from XX_tb where id = ? limit 1000";
    try (PreparedStatement pstDel = conn.prepareStatement(sqlDelete)) {
        pstDel.setInt(1, id);
        
        while (true) {
            int row = pstDel.executeUpdate(); //获取删除数据的行数,没有返回 0
            System.out.println(row);
            if (row == 0) {
                break;
            }

            //休眠代码,建议按照实际情况设置休眠时间,可减轻数据库操作压力
            try {
                System.out.println("******* sleep for 0.1 second *******");
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            
        }
    }
2.tips

Statement 和 PreparedStatement 获取删除数据行数的方法一样,至于其它区别可参见Java连接MySql,以及Statement,PreparedStatement,ResultSet 用法和区别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值