ClickHouse 微量数据插入慢

ClickHouse 微量数据插入慢

最近发现使用 ClickHouse 插入 5000 条数据时,消费了 10+ 分钟,最后发现主要消耗在批量插入操作了。
使用的 Mybatis 自带的批量插入接口,插入操作执行了十多分钟,可这才仅仅 5000 条数据。
最后查询到可以通过手撸 JDBC 进行批处理插入,可能速度会快一些,问题解决。

			// JDBC 原生批量插入
            try {
                Class.forName(driverClassName);
                Connection connection = DriverManager.getConnection(url, connUserName, connPassword);
                connection.setAutoCommit(false); // 设置手动提交
                // 预编译 SQL 对象
                PreparedStatement ps = connection.prepareStatement(
                        "INSERT INTO *_data (fields) VALUES" +
                                "(?,?,?,?,?)"
                );
                saveList.forEach(e -> {
                    try {
                        ps.setInt(1, e.getField1());
                        ps.setInt(2, e.getField2());
                        ps.setInt(3, e.getField3());
                        ps.setString(4, e.getField4());
                        ps.setInt(5, e.getField5());
                        ps.addBatch();
                    } catch (SQLException ex) {
                        log.error("ck 批量操作,插入数据失败!");
                        throw new RuntimeException(ex);
                    }
                });
                ps.executeBatch();//提交批处理
                connection.commit();//执行
                connection.close();
            } catch (ClassNotFoundException e) {
                log.error("CK 数据库连接器报错:" + e);
            } catch (SQLException e) {
                log.error("CK 数据库连接出错:" + e);
            }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值