【TiDB 使用环境】生产
【TiDB 版本】v 6.5
【操作系统】linux
【部署方式】
【集群数据量】4 tidb + 5 tikv + 1 tiflash + 3 pd
【集群节点数】
【遇到的问题:问题现象及影响】有一张大表,约 20 亿数据,想一边写数据,一边大屏展示统计量
怎么避免读写死锁或幻读?
【TiDB 使用环境】生产
【TiDB 版本】v 6.5
【操作系统】linux
【部署方式】
【集群数据量】4 tidb + 5 tikv + 1 tiflash + 3 pd
【集群节点数】
【遇到的问题:问题现象及影响】有一张大表,约 20 亿数据,想一边写数据,一边大屏展示统计量
怎么避免读写死锁或幻读?
SI 可以克服幻读
TIDB默认的是哪个级别
没啥问题,采用海量写,读的时候用版本就行了,batch on 的方式删除
SI 能避免大部分幻读,除了 “写偏序” 场景。
感觉你说的有道理
mvcc模式,不会存在死锁或者幻读的情况
优先用 RC + 快照读
哪个级别都不影响你的需求,不过一般用rc吧
点赞, 那写偏序怎么解决呢?
SI解决不了呀
还是读写分离,采用htap机制吧.这个得读tiflash.
默认就可以。删根据主键删,tidb是快照读,不存在幻读
这个看业务要不要数据一致,如果有多次查询计算的话要用默认级别
默认是快照读吗?
写偏斜用 select for update
看标题,一边删、一般算。
如果你不是 select for update,我理解除非你删除自己有问题,不然不会死锁的。
不想幻读就用 RR 级别,但是读已提交更合理吧?
RC就行
行锁 + 间隙锁 (Gap Lock)?