TIDB事务过大transction too large解决方法

由于TIDB二阶段提交的特性,对事务大小有做限制:
单个事务包含的 SQL 语句不超过 5000 条(默认)
单条 KV entry 不超过 6MB
KV entry 的总条数不超过 30w
KV entry 的总大小不超过 100MB

因此批量导入或者批量删除数据时在tidb里经常会遇到transction too large的情况。
批量插入数据可以使用

set tidb_batch_insert=1;

完成后将参数关闭

set tidb_batch_insert=0

该操作不建议在生产环境中使用,因为这样insert 会把大事务分批执行,如果中途报错,已插入的数据不会回滚,丢失事务的原子性。

批量删除数据可以使用

set tidb_batch_delete=1;

完成后将参数关闭

set tidb_batch_delete=0

批量删除被切分为小事务,也可以使用 limit 加循环的方式进行操作。

update可以通过limit加循环的方式实现。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在排查和解决TiDB中TiKV CPU使用率过高的问题时,可以按照以下步骤进行: 1. 查看TiKV的监控指标:首先,通过监控系统查看TiKV的CPU使用率和其他相关指标,如内存使用率、磁盘IO等。确定CPU使用率是否真的过高以及其他指标是否异常。 2. 检查TiKV配置:检查TiKV的配置文件,包括CPU相关的配置项,比如线程数、并发度等。确保配置项与硬件环境相匹配,且没有设置过高的值导致CPU占用过高。 3. 检查TiDB版本:确保使用的TiDB版本是最新的稳定版本,因为一些旧版本可能存在CPU占用的bug或性能问题。如果是旧版本,可以尝试升级到最新版本以修复问题。 4. 检查TiKV日志:查看TiKV的日志,特别是错误日志或警告信息,以了解是否有异常发生。错误日志可能会提供有关CPU占用过高的更多线索。 5. 检查TiDB查询语句:排查是否有复杂或低效的查询语句导致TiKV的CPU占用过高。可以通过优化查询语句、增加索引或调整TiDB的配置来改善查询性能。 6. 调整TiKV参数:根据实际情况,可以尝试调整TiKV的一些参数,如region和raft的配置参数,以优化性能并减少CPU的使用率。 7. 分析性能剖面数据:如果以上步骤无法解决问题,可以使用TiDB提供的性能剖面功能,对TiKV进行深入分析。这将帮助您确定具体的热点和性能瓶颈,并采取相应的措施进行优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值