TiDB 4.0 PCTA 学习笔记】- 201+2.3.5 How to Use Transactions in TiDB(如何在 TiDB 中使用事务)@ 1班+付志强

课程名称:201+2.3.5 How to Use Transactions in TiDB(如何在 TiDB 中使用事务)

学习时长:35分钟

课程收获:了解Tidb事务的原理及如何使用。

课程内容:

讲师:徐锐

1、 事务概览
事务的基本介绍
事务是一系列可以被合并到一起的,别当做一个原子的操作的操作的集合。
从应用侧:事务是一个对应用侧提供对数据操作原子性、一致性、隔离性和持久性保证的一种常用的数据库机制

事务的作用
使数据更安全
使数据并发安全:读写冲突;写写冲突;管理冲突
使应用开发更容易
保持一致性

2、 TiDB事务模型的设计及实现方法
TiDB分布式事务引擎的设计原理
两阶段提交协议,google Percolator论文
早期,支持乐观事务模型
快照隔离;乐观事务的所有修改存储在TiDB的缓存中;提交阶段才进行冲突检测
3.0起,引入悲观事务模式
悲观锁加锁机制
写写冲突减少
支持读已提交隔离级别

3、 TiDB如何实现事务
事务特性的使用,从应用侧来评估
评估需要
A、 隔离级别:快照隔离;读已提交隔离
B、 是否需要加锁操作
C、 是否有大量的DDL执行

乐观事务模式
基本语法与SQL标准语法基本一致
开始或提交事务:begin,start transaction,commit,rollback
事务自动提交:变量autocommit=1
悲观事务模式
3.0.8版起,新建TiDB默认开启悲观事务模式
开启悲观事务:系统变量 set global tidb_txn_mode=”pessimistic”
开启单个语句:begin pessimistic
开启读已提交隔离级别:系统变量 set txn_isolation=”read-committed”

TiDB不支持Gap lock。

学习过程中参考的其他资料