ebin1983
(ebin1983)
1
为提高效率,提问时请尽量提供详细背景信息,问题描述清晰可优先响应。以下信息点请尽量提供:
- 【系统版本 & kernel 版本】
centos7
- 【TiDB 版本】
3.05
- 【磁盘型号】
- 【集群节点分布】
2tidb 3pd 5tikv
- 【数据量 & region 数量 & 副本数】
1000万数据量
- 【问题描述(我做了什么)】
update request_keyword_task
set status
=0
8004 - transaction too large, len:300002
时间: 63.054s
QBin
(Bin)
2
TiDB 这边对单个事务是有限制的。具体可以参考官方文档: Transaction too large 是什么原因。建议对单个大事务进行拆分。
ebin1983
(ebin1983)
3
可是 这个 update request_keyword_task
set status
=0 语句 没法用存储过程 写啊 而且我并不想用事务
ebin1983
(ebin1983)
4
我的意思是说 我的应用场景是 定时有很多的 这种更新状态的 update语句 ,我在mysql用的是事件触发,一次就执行完毕,那我要是迁移到tidb的话 也写不了存储过程 ,怎么处理呢?
QBin
(Bin)
5
建议添加 where 条件进行事务拆分如: update request_keyword_task
set status
=0 where id > 0 and id < 10000 。
system
(system)
关闭
7
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。