我有个大事务执行失败,查了下文档需要修改配置文件中 txn-total-size-limit
参数修改,修改完还需要reload集群太麻烦了。
有没有设置系统变量可以临时修改的方法?
或者有没有大佬帮忙优化下sql能循环执行的
update
a, b
set b.material_code = a.new_material_no
where a.old_material_no = b.material_code
5.4版本没这个功能
这是要全表更新啊?用主键limit一下?
是的,有个2000多万行记录的表有个字段需要全表更新。
5.4不支持batch
学习了
txn-total-size-limit
结合窗口函数,将数据划分成小段,多个SQL实现
这么写,分页还是需要手动填写,2000多万行记录工作量有点大啊
我算了下需要分成100多段sql。。。
不用啊,分页范围是窗口函数算出来的啊,也可以直接用SQL把最终要执行的SQL拼出来再执行
1 个赞
用SQL生成是最直接的。
也可用notepad++的列编辑,或者vim的记录器来写,工作量其实不大。
分吧,一把梭哈的话,容易把集群打挂。
set tidb_mem_quota_query=给个很大的值再执行
报错的是事务 txn-total-size-limit这个参数和查询的限制没关系