From 0f8b1367820015520badac7c543578937fd93a2c Mon Sep 17 00:00:00 2001 From: houfaxin Date: Thu, 16 Oct 2025 14:47:36 +0800 Subject: [PATCH 1/6] Update optimistic-transaction.md --- optimistic-transaction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/optimistic-transaction.md b/optimistic-transaction.md index b2b2a5327651..834d6db818db 100644 --- a/optimistic-transaction.md +++ b/optimistic-transaction.md @@ -68,7 +68,7 @@ summary: 了解 TiDB 的乐观事务模型。 > > 从 v8.0.0 开始,[`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) 被废弃,不再支持乐观事务的自动重试。推荐使用[悲观事务模式](/pessimistic-transaction.md)。如果使用乐观事务模式发生冲突,请在应用里捕获错误并重试。 -使用乐观事务模型时,在高冲突率的场景中,事务容易发生写写冲突而导致提交失败。MySQL 使用悲观事务模型,在执行写入类型的 SQL 语句的过程中进行加锁并且在 Repeatable Read 隔离级别下使用了当前读的机制,能够读取到最新的数据,所以提交时一般不会出现异常。为了降低应用改造难度,TiDB 提供了数据库内部自动重试机制。 +使用乐观事务模型时,在高冲突率的场景中,事务容易发生写写冲突而导致提交失败。TiDB 和 MySQL 都默认使用[悲观事务模型](/pessimistic-transaction.md),在执行写入类型的 SQL 语句的过程中进行加锁并且在 Repeatable Read 隔离级别下使用了当前读的机制,能够读取到最新的数据,所以提交时一般不会出现异常。为了降低应用改造难度,TiDB 提供了数据库内部自动重试机制。 ### 重试机制 From b5951e543d08945bd3c95d669de614626841d5a0 Mon Sep 17 00:00:00 2001 From: xixirangrang Date: Thu, 16 Oct 2025 15:27:09 +0800 Subject: [PATCH 2/6] Update optimistic-transaction.md Co-authored-by: Lilian Lee --- optimistic-transaction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/optimistic-transaction.md b/optimistic-transaction.md index 834d6db818db..f4eb6cd9ae1e 100644 --- a/optimistic-transaction.md +++ b/optimistic-transaction.md @@ -68,7 +68,7 @@ summary: 了解 TiDB 的乐观事务模型。 > > 从 v8.0.0 开始,[`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) 被废弃,不再支持乐观事务的自动重试。推荐使用[悲观事务模式](/pessimistic-transaction.md)。如果使用乐观事务模式发生冲突,请在应用里捕获错误并重试。 -使用乐观事务模型时,在高冲突率的场景中,事务容易发生写写冲突而导致提交失败。TiDB 和 MySQL 都默认使用[悲观事务模型](/pessimistic-transaction.md),在执行写入类型的 SQL 语句的过程中进行加锁并且在 Repeatable Read 隔离级别下使用了当前读的机制,能够读取到最新的数据,所以提交时一般不会出现异常。为了降低应用改造难度,TiDB 提供了数据库内部自动重试机制。 +使用乐观事务模型时,在高冲突率的场景中,事务容易发生写写冲突而导致提交失败。从 v3.0.8 开始,TiDB 默认使用[悲观事务模型](/pessimistic-transaction.md),与 MySQL 一致。这意味着 TiDB 和 MySQL 在执行写入类型的 SQL 语句的过程中会进行加锁,并且在 Repeatable Read 隔离级别下使用了当前读的机制,能够读取到最新的数据,所以提交时一般不会出现异常。为了降低应用改造难度,TiDB 提供了数据库内部自动重试机制。 ### 重试机制 From 90c35074acf2c5904f5bffe791d0a1c8722b7d0d Mon Sep 17 00:00:00 2001 From: houfaxin Date: Thu, 16 Oct 2025 21:17:20 +0800 Subject: [PATCH 3/6] Update optimistic-transaction.md --- optimistic-transaction.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/optimistic-transaction.md b/optimistic-transaction.md index f4eb6cd9ae1e..8ccd0252f8f9 100644 --- a/optimistic-transaction.md +++ b/optimistic-transaction.md @@ -68,10 +68,14 @@ summary: 了解 TiDB 的乐观事务模型。 > > 从 v8.0.0 开始,[`tidb_disable_txn_auto_retry`](/system-variables.md#tidb_disable_txn_auto_retry) 被废弃,不再支持乐观事务的自动重试。推荐使用[悲观事务模式](/pessimistic-transaction.md)。如果使用乐观事务模式发生冲突,请在应用里捕获错误并重试。 -使用乐观事务模型时,在高冲突率的场景中,事务容易发生写写冲突而导致提交失败。从 v3.0.8 开始,TiDB 默认使用[悲观事务模型](/pessimistic-transaction.md),与 MySQL 一致。这意味着 TiDB 和 MySQL 在执行写入类型的 SQL 语句的过程中会进行加锁,并且在 Repeatable Read 隔离级别下使用了当前读的机制,能够读取到最新的数据,所以提交时一般不会出现异常。为了降低应用改造难度,TiDB 提供了数据库内部自动重试机制。 +使用乐观事务模型时,在高冲突率的场景中,事务容易发生写写冲突而导致提交失败。从 v3.0.8 开始,TiDB 默认使用[悲观事务模型](/pessimistic-transaction.md),与 MySQL 一致。这意味着 TiDB 和 MySQL 在执行写入类型的 SQL 语句的过程中会进行加锁,并且在 Repeatable Read 隔离级别下使用了当前读的机制,能够读取到最新的数据,所以提交时一般不会出现异常。 ### 重试机制 +> **注意:** +> +> 从 TiDB v3.0 开始,事务的自动重试功能默认为禁用状态。不建议开启自动重试功能,因为可能导致事务隔离级别遭到破坏。 + 当事务提交时,如果发现写写冲突,TiDB 内部重新执行包含写操作的 SQL 语句。你可以通过设置 `tidb_disable_txn_auto_retry = OFF` 开启自动重试,并通过 `tidb_retry_limit` 设置重试次数: ```toml From 2af6e6e1314c4deff166e71d3a9af36ac2bf33de Mon Sep 17 00:00:00 2001 From: houfaxin Date: Thu, 16 Oct 2025 21:52:49 +0800 Subject: [PATCH 4/6] Update optimistic-transaction.md --- optimistic-transaction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/optimistic-transaction.md b/optimistic-transaction.md index 8ccd0252f8f9..dab795cee6f6 100644 --- a/optimistic-transaction.md +++ b/optimistic-transaction.md @@ -74,7 +74,7 @@ summary: 了解 TiDB 的乐观事务模型。 > **注意:** > -> 从 TiDB v3.0 开始,事务的自动重试功能默认为禁用状态。不建议开启自动重试功能,因为可能导致事务隔离级别遭到破坏。 +> 从 TiDB v3.0 开始,事务的自动重试功能默认为禁用状态。不建议开启自动重试功能,因为可能导致**事务隔离级别遭到破坏**。 当事务提交时,如果发现写写冲突,TiDB 内部重新执行包含写操作的 SQL 语句。你可以通过设置 `tidb_disable_txn_auto_retry = OFF` 开启自动重试,并通过 `tidb_retry_limit` 设置重试次数: From fe493390c64b471716c4e8ef849ee9ce2284ebc2 Mon Sep 17 00:00:00 2001 From: houfaxin Date: Thu, 16 Oct 2025 22:02:09 +0800 Subject: [PATCH 5/6] Update optimistic-transaction.md --- optimistic-transaction.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/optimistic-transaction.md b/optimistic-transaction.md index dab795cee6f6..73a068ace1bf 100644 --- a/optimistic-transaction.md +++ b/optimistic-transaction.md @@ -74,7 +74,8 @@ summary: 了解 TiDB 的乐观事务模型。 > **注意:** > -> 从 TiDB v3.0 开始,事务的自动重试功能默认为禁用状态。不建议开启自动重试功能,因为可能导致**事务隔离级别遭到破坏**。 +> - 从 TiDB v3.0.0 开始,事务的自动重试功能默认为禁用状态,因为可能导致**事务隔离级别遭到破坏**。 +> - 从 TiDB v8.0.0 开始,不再支持乐观事务的自动重试。 当事务提交时,如果发现写写冲突,TiDB 内部重新执行包含写操作的 SQL 语句。你可以通过设置 `tidb_disable_txn_auto_retry = OFF` 开启自动重试,并通过 `tidb_retry_limit` 设置重试次数: From aa6ebdf884fecd355db4be8e4993d154666c8953 Mon Sep 17 00:00:00 2001 From: Lilian Lee Date: Fri, 17 Oct 2025 10:19:40 +0800 Subject: [PATCH 6/6] Update wording --- optimistic-transaction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/optimistic-transaction.md b/optimistic-transaction.md index 73a068ace1bf..389a3412f337 100644 --- a/optimistic-transaction.md +++ b/optimistic-transaction.md @@ -74,7 +74,7 @@ summary: 了解 TiDB 的乐观事务模型。 > **注意:** > -> - 从 TiDB v3.0.0 开始,事务的自动重试功能默认为禁用状态,因为可能导致**事务隔离级别遭到破坏**。 +> - 从 TiDB v3.0.0 开始,事务的自动重试功能默认为禁用状态,因为该功能可能导致**事务隔离级别遭到破坏**。 > - 从 TiDB v8.0.0 开始,不再支持乐观事务的自动重试。 当事务提交时,如果发现写写冲突,TiDB 内部重新执行包含写操作的 SQL 语句。你可以通过设置 `tidb_disable_txn_auto_retry = OFF` 开启自动重试,并通过 `tidb_retry_limit` 设置重试次数: