课程名称:课程版本(201)+ 2.3.5 How to Use Transactions in TiDB(如何在 TiDB 中使用事务)
学习时长:
30 min
课程收获:
学习TiDB中的事务特性,了解分布式事务实现原理
课程内容:
Transaction
- 一系列可以合并在一起,当做一个原子操作的操作集合
- 让数据更安全
- 让并发操作更安全
- 数据状态处于一致性
TiDB Transaction
- Pecolator
- 分布式事务 - 两段式提交(2PC)
- SS2PL+ MVCC
- 早期默认乐观事务
- SI 隔离级别
- 修改会缓存在内存中
- 事务冲突
- 引入悲观事务
- 支持当前读
- 减小事务冲突
- Read-commit isolation
How to use transactions in TiDB
- 语法与MySQL相同
- autocommit 参数控制是否自动提交事务
- begin 会隐式提交上一个还未提交的事务并开始一个新事务
- DDL 操作也会隐式提交上一个还未提交的事务并开始一个新事务
- set global tidb_txn_mode = “pessimistic” 开启全局悲观事务
- begin pessimistic 开始单个悲观事务
- set tx_isolation = “read-committed” 开启read-committed隔离级别
- TiDB 只支持行锁
- TiDB 不支持 Gap lock
- TiDB 不支持对没有读到的数据加锁