如何强制中断连接,而不进行等待连接释放

研究背景:在加解密近5000w数据量的过程中,取消加解密时,能够立即回滚

通过jdbc进行close释放资源慢的原因

public void close() throws SQLException {
    if (!this.closed) {
        try {
            if (!this.getConnection().isClosed()) {
                while(true) {
                    if (this.next()) {
                        continue;
                    }
                }
            }
        } finally {
            this.closed = true;
            this.statement = null;
        }
    }
}

调用close()时,会进行遍历整个结果集,使游标置于末尾,才会进行关闭。
如果查询语句返回的结果集中数据量巨大,则整个关闭过程就会延迟4-8分钟。


通过杀死连接的方式,达到快速释放资源

// 查询所有连接
SHOW PROCESSLIST;
// 查询当前连接的ID
SELECT CONNECTION_ID();
// 杀死ID为12的连接
KILL 12;

总结
面对大数据量下,无法立即释放资源的情况下,可以采用该方式。
除此之外,按照规范,应该通过JDBC的方法进行释放,保证连接使用的安全性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值