【 TiDB 使用环境】线上、测试、调研
【 TiDB 版本】
【遇到的问题】
【复现路径】做过哪些操作出现的问题
【问题现象及影响】
【附件】
请提供各个组件的 version 信息,如 cdc/tikv,可通过执行 cdc version/tikv-server --version 获取。
【 TiDB 使用环境】线上、测试、调研
【 TiDB 版本】
【遇到的问题】
【复现路径】做过哪些操作出现的问题
【问题现象及影响】
【附件】
请提供各个组件的 version 信息,如 cdc/tikv,可通过执行 cdc version/tikv-server --version 获取。
普通sql 不也是事务嘛 无非是一个自动提交 一个手动提交, 都是需要获取TSO的
普通select
普通select 也是事务,需要获取tso
点查应该不需要TSO,其他需要TSO
如果类似oracle的SCN,普通select也会导致SCN增长
是否有大佬知晓呢?
TiDB 在事务开始时会获取 TSO 作为 start_ts、提交时获取 TSO 作为 commit_ts,依靠 TSO 实现事务的 MVCC,查询的mvcc,读申请1次tso.
写申请2次tso.TSO 授时服务可以保证按照递增的方式分配时间戳,任何一次申请得到的时间戳都不会重复
就是说任何一次查询都需要获取TSO,因为MVCC也依赖TSO
是的,要不怎么实现一致性
任何事务(显示 隐式)都要获取tso, 一般来说开始🈶starts,提交有coomit ts , 悲观dml还有for update ts.rc隔离级别需要每个sql都获取一个tso
rc隔离级别需要每个sql都获取一个tso,rr隔离级别呢?
和隔离级别应该没有关系,读取时事物需要获取 TSO
需要获取,mvcc