gpt4 book ai didi

mysql - 优化MySQL批量不同操作

转载 作者:行者123 更新时间:2023-11-29 16:07:41 26 4
gpt4 key购买 nike

背景

我正在开发 data sync tool它监听来自数据库的更改,操作这些更改并将它们发送到另一个目标数据库。

我在对MySQL进行性能测试时,遇到了一些问题。

问题

现在我正在使用 Spring JdbcTemplate#batchUpdate 将一批数据更改发送到 MySQL。

String[] sqlStatement = new String[]{"insert ...;", "update ...;", "delete ...;"};
jdbcTemplate.batchUpdate(sqlStatement)

这种批处理包含对不同表的不同类型的操作(插入更新删除)。因此,rewriteBatchedStatements=true 选项不太有用(尽管我添加了此选项,但没有看到任何提升)。

现在平均插入速度约为1300/s(Elasticsearch可以达到10000以上,以下是一些测试结果)。

    time: 20190407-022652
src=800000
dst=9302
time: 20190407-022654
src=800000
dst=12070
time: 20190407-022656
src=800000
dst=14863
time: 20190407-022658
src=800000
dst=17536

那么有什么建议来优化这种批处理吗?

可能的解决方案

  • autocommit=0; & commit;?:在同一个事务中进行整批可能会有所帮助,但可能会带来一些副作用,所以我们非常小心这个选项。

最佳答案

MySQL 是哪个版本?如果是 5.7,那么这可能是解决方案:Query Rewrite 。另请参阅5.7 manual .

关于mysql - 优化MySQL批量不同操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55575570/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com