diff --git a/optimistic-transaction.md b/optimistic-transaction.md index 2f87630e5533..4dea0b8514dc 100644 --- a/optimistic-transaction.md +++ b/optimistic-transaction.md @@ -64,7 +64,7 @@ summary: 了解 TiDB 的乐观事务模型。 ## 事务的重试 -使用乐观事务模型时,在高冲突率的场景中,事务容易发生写写冲突而导致提交失败。MySQL 使用悲观事务模型,在执行 SQL 语句的过程中进行加锁并且其 Repeatable Read 隔离级别允许出现不可重复读,所以提交时一般不会出现异常。为了降低应用改造难度,TiDB 提供了数据库内部自动重试机制。 +使用乐观事务模型时,在高冲突率的场景中,事务容易发生写写冲突而导致提交失败。MySQL 使用悲观事务模型,在执行写入类型的 SQL 语句的过程中进行加锁并且在 Repeatable Read 隔离级别下使用了当前读的机制,能够读取到最新的数据,所以提交时一般不会出现异常。为了降低应用改造难度,TiDB 提供了数据库内部自动重试机制。 ### 重试机制 diff --git a/transaction-isolation-levels.md b/transaction-isolation-levels.md index 2bab7eea8c80..6b70c61564a9 100644 --- a/transaction-isolation-levels.md +++ b/transaction-isolation-levels.md @@ -49,7 +49,7 @@ commit; | ### 与 MySQL 可重复读隔离级别的区别 -MySQL 可重复读隔离级别在更新时并不检验当前版本是否可见,也就是说,即使该行在事务启动后被更新过,同样可以继续更新。这种情况在 TiDB 会导致事务回滚,导致事务最终失败,而 MySQL 是可以更新成功的。MySQL 的可重复读隔离级别并非 Snapshot 隔离级别,MySQL 可重复读隔离级别的一致性要弱于 Snapshot 隔离级别,也弱于 TiDB 的可重复读隔离级别。 +MySQL 可重复读隔离级别在更新时并不检验当前版本是否可见,也就是说,即使该行在事务启动后被更新过,同样可以继续更新。这种情况在 TiDB 使用乐观事务时会导致事务回滚,导致事务最终失败,而 TiDB 默认的悲观事务和 MySQL 是可以更新成功的。 ## 读已提交隔离级别 (Read Committed)