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、以及避免长事务长时间持有快照。