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

RC是允许(读到其他事务已提交的最新数据)

读写分离,主库负责读写和更新,从库负责同步主库数据

1 个赞

一般都是用rc级别的

为什么呢?这样更多锁哦

1 个赞

建议是rc

1 个赞

rc的

1 个赞

需要怎么配置,脚本怎么写。搞个详细的,学习下。

1 个赞

一般是什么呢

1 个赞

怎么解决避免读写死锁?

1 个赞

一般用rc就可以了

1 个赞

用 AS OF TIMESTAMP 历史读,彻底避免幻读

1 个赞

写入与统计完全隔离,互不影响

1 个赞

应该是gc吧

默认可以的

read commit就可以吧

读多写少用 ‌乐观事务 ‌;写冲突频繁(如秒杀、余额扣减)改用 ‌悲观事务 ‌(执行 SELECT ... FOR UPDATE 即自动升级);避免长事务

官方推荐使用默认的 REPEATABLE READ (快照隔离 SI)隔离级别,而非 READ COMMITTED 。‌‌

R(默认 SI 快照隔离):事务内统一快照,全程数据一致,消除幻读;但长统计事务会留存旧版本,GC 压力大,并发删除易锁等待。

存储负载隔离:统计查询强制路由 TiFlash 列存,在线删写走 TiKV,资源物理隔离 两者结合是 平凯星辰 官方文档针对「大表实时写入 + 实时统计」HTAP 场景的标准最佳实践。

TiDB 默认隔离级别是 SI(快照隔离,对外表现为可重复读 RR),不存在幻读,读走一致性快照、读不阻塞写、写不阻塞读。你这种一边写一边大屏统计的场景直接用默认 RR 即可:统计查询在事务开始时锁定一个快照,MVCC 保证它看到一致数据,不会和并发的删/写产生读写死锁。大屏统计建议用只读的、短的快照读或 AS OF TIMESTAMP,避免长事务把 GC safepoint 顶住。不要为此调低隔离级别;20 亿表的统计更该关注是否下推 TiFlash、以及避免长事务长时间持有快照。