“一边删、一边算”的场景,官方推荐的最佳隔离级别是什么

【TiDB 使用环境】生产
【TiDB 版本】v 6.5
【操作系统】linux
【部署方式】
【集群数据量】4 tidb + 5 tikv + 1 tiflash + 3 pd
【集群节点数】

【遇到的问题:问题现象及影响】有一张大表,约 20 亿数据,想一边写数据,一边大屏展示统计量

怎么避免读写死锁或幻读?

SI 可以克服幻读

TIDB默认的是哪个级别

1 个赞

没啥问题,采用海量写,读的时候用版本就行了,batch on 的方式删除

1 个赞

和MySQL一致

1 个赞

SI 能避免大部分幻读,除了 “写偏序” 场景。

感觉你说的有道理

mvcc模式,不会存在死锁或者幻读的情况

优先用 RC + 快照读

哪个级别都不影响你的需求,不过一般用rc吧

点赞, 那写偏序怎么解决呢?

SI解决不了呀

还是读写分离,采用htap机制吧.这个得读tiflash.

默认就可以。删根据主键删,tidb是快照读,不存在幻读

这个看业务要不要数据一致,如果有多次查询计算的话要用默认级别

默认是快照读吗?

写偏斜用 select for update

2 个赞

看标题,一边删、一般算。
如果你不是 select for update,我理解除非你删除自己有问题,不然不会死锁的。

不想幻读就用 RR 级别,但是读已提交更合理吧?

1 个赞

RC就行

行锁 + 间隙锁 (Gap Lock)?