> 记录工作过程中遇到的问题。
[TOC]
# TiDB Server OOM
大表,比如1亿行,60G,全表扫描,也经常会导致TiDB Server节点OOM,短暂崩溃。 全部使用内存,缺乏自我保护机制。
# 分区表
由于数据只需要保存7天,所以用分区表实现。一个简单的SQL,比如:select * from xx limit 10,都可能引起SQL节点OOM崩溃,1秒无服务,引起GetConnectionTimeoutException。
原因:[https://github.com/pingcap/tidb/pull/13628](https://github.com/pingcap/tidb/pull/13628)
解决办法:升级,3.0.5->3.0.10。
# write conflict
TiDB(3.0.5)是乐观锁,我们一般会设置乐观锁重试次数,比如10次。
那么尝试失败之后,并发update就是write conflict,并发insert就是duplicate entry。
所以,对于同一行记录,存在很多并发修改的场景,TiDB(3)并不适合。
TiDB(4)已经支持悲观锁。
[TiDB 新特性漫谈:悲观事务](https://segmentfault.com/a/1190000020137731)