当前位置: 首页 > news >正文

java.sql.SQLException: txn too large, size: 104857606.

错误详情

[2024-08-19 02:00:26.214][ERROR][scheduling-1][][o.s.s.s.TaskUtils$LoggingErrorHandler:95]Unexpected error occurred in scheduled task
org.springframework.jdbc.UncategorizedSQLException:
### Error updating database.  Cause: java.sql.SQLException: txn too large, size: 104857632.
### The error may exist in com/pt/ac/rep/biz/mapper/AcMapper.java (best guess)
### The error may involve com.ptc.action.replay.biz.mapper.ActionRecordMapper.deleteByCreateTime-Inline
### The error occurred while setting parameters
### SQL: DELETE FROM user_ac_record WHERE counter <= 0 and create_time <= ?
### Cause: java.sql.SQLException: txn too large, size: 104857632.
; uncategorized SQLException; SQL state [HY000]; error code [1105]; txn too large, size: 104857632.; nested exception is java.sql.SQLExcep
tion: txn too large, size: 104857632.at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:8
9)at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:8
1)at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:8
1)at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:88)at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)at com.sun.proxy.$Proxy110.delete(Unknown Source)at org.mybatis.spring.SqlSessionTemplate.delete(SqlSessionTemplate.java:303)at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:70)at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)at com.sun.proxy.$Proxy115.deleteByCreateTime(Unknown Source)at com.ptc.ac.rep.biz.service.ClearRecordService.clearOldUserData(ClearRecordService.java:37)at com.ptc.ac.rep.biz.task.QuicBizAwareTask.clearOldData(QuicBizAwareTask.java:29)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.base/java.lang.reflect.Method.invoke(Method.java:566)at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)

通用原因

由于底层存储引擎的限制,TiDB 要求单行不超过 6 MB。可以将一行的所有列根据类型转换为字节数并加和来估算单行大小。TiDB 同时支持乐观事务与悲观事务,其中乐观事务是悲观事务的基础。由于乐观事务是先将修改缓存在私有内存中,因此,TiDB 对于单个事务的容量做了限制。TiDB 中,单个事务的总大小默认不超过 100 MB,这个默认值可以通过配置文件中的配置项 txn-total-size-limit 进行修改,最大支持 10 GB。单个事务的实际大小限制还取决于服务器剩余可用内存的大小,执行事务时 TiDB 进程的内存消耗相对于事务大小会存在一定程度的放大,最大可能达到提交事务大小的 6 倍以上。在 4.0 以前的版本,TiDB 限制了单个事务的键值对的总数量不超过 30 万条,从 4.0 版本起 TiDB 取消了这项限制。

当前原因

在tidb中尝试一次性删除了太多数据,超过了单个事务的总大小限制。

解决方案

减少每次删除的条数,从而降低tx的总的大小。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SQLALchemy 分组过滤、子查询
  • QT网络编程: 实现UDP通讯设置
  • java使用itext 直接生成pdf
  • 2025ICASSP Author Guidelines
  • 宠物空气净化器推荐买吗?清除浮毛的效果好吗
  • 改变自己·心情治愈
  • [000-01-030].Zookeeper学习大纲
  • node版本8.x→16.x,前端维护火葬场,问题及解决方案总结
  • 如何将本地组件库上传到npm上
  • 【区块链+金融服务】甘肃股权交易中心企业金融服务平台 | FISCO BCOS应用案例
  • DQL-案例
  • 第10章 无持久存储的文件系统 (3)
  • 【hot100篇-python刷题记录】【和为 K 的子数组】
  • 写一个githubDemo
  • docker 安装minio并配置https域名访问
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 2019年如何成为全栈工程师?
  • git 常用命令
  • Idea+maven+scala构建包并在spark on yarn 运行
  • mysql_config not found
  • Mysql数据库的条件查询语句
  • PAT A1050
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Redis在Web项目中的应用与实践
  • Spark学习笔记之相关记录
  • Spring Boot快速入门(一):Hello Spring Boot
  • Spring声明式事务管理之一:五大属性分析
  • vuex 学习笔记 01
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 聊聊redis的数据结构的应用
  • 每天10道Java面试题,跟我走,offer有!
  • 前端攻城师
  • 山寨一个 Promise
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 小试R空间处理新库sf
  • 硬币翻转问题,区间操作
  • 优化 Vue 项目编译文件大小
  • 在weex里面使用chart图表
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • # Kafka_深入探秘者(2):kafka 生产者
  • #14vue3生成表单并跳转到外部地址的方式
  • #pragam once 和 #ifndef 预编译头
  • #ubuntu# #git# repository git config --global --add safe.directory
  • (2)(2.10) LTM telemetry
  • (20050108)又读《平凡的世界》
  • (补充)IDEA项目结构
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (规划)24届春招和25届暑假实习路线准备规划
  • (六)激光线扫描-三维重建
  • (详细文档!)javaswing图书管理系统+mysql数据库
  • (一)、软硬件全开源智能手表,与手机互联,标配多表盘,功能丰富(ZSWatch-Zephyr)
  • (一)VirtualBox安装增强功能
  • (转)iOS字体
  • (转)Oracle 9i 数据库设计指引全集(1)