我们在处理海量数据的数据批量操作,发现非常耗时,而且非常耗内存。初步认为可能是因为表锁和事务的原因,因为我们的需求对锁和事务没有需求,所以想知道如何设置TIDB数据库取消表锁和事务。
1 个赞
tidb 采用的事务模型是乐观锁机制,只有在提交过程中才会检查写写冲突,而不是像 MySQL 一样使用行锁来避免写写冲突。另外,辛苦详细描述下批量处理是指 批量插入还是批量更新,按照提问须知提供详细情况。感谢。
https://pingcap.com/docs-cn/v3.0/reference/transactions/transaction-model/#事务模型
批量删除操作,大概删除7000W数据,3台KV(每台12内存),直接内存耗满,然后卡死。
辛苦按照提问须知,提供一下版本信息,以及内存配置,请详细描述,卡死是指 oom 还是没有返回结果 ?
是不是 delete 的时候没有加 limit,按照 where 条件一次命中的行数太多内存爆炸了。TiDB 上删除数据需要控制每次删除的量级分批删除,不然一方面吃内存另外一方面有可能最后到 commit 阶段超过事务大小限制而失败。
1 个赞
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。