From 30a4156ce687faee7b720ad42fe8f3e98b1c1a87 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Fri, 22 Dec 2023 16:53:35 +0800 Subject: [PATCH 1/8] Update use-tidb-to-read-tiflash.md --- tiflash/use-tidb-to-read-tiflash.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tiflash/use-tidb-to-read-tiflash.md b/tiflash/use-tidb-to-read-tiflash.md index c98f1d49f6c6..9c1c5fb46e95 100644 --- a/tiflash/use-tidb-to-read-tiflash.md +++ b/tiflash/use-tidb-to-read-tiflash.md @@ -121,4 +121,7 @@ select /*+ read_from_storage(tiflash[alias_a,alias_b]) */ ... from table_name_1 > **注意:** > -> TiDB 4.0.3 版本之前,在非只读 SQL 语句中(比如 `INSERT INTO ... SELECT`、`SELECT ... FOR UPDATE`、`UPDATE ...`、`DELETE ...`)读取 TiFlash,行为是未定义。TiDB 4.0.3 以及后续的版本,TiDB 内部会对非只读 SQL 语句忽略 TiFlash 副本以保证数据写入、更新、删除的正确性。对应的,如果使用了[智能选择](#智能选择)的方式,TiDB 会自动选择非 TiFlash 副本;如果使用了 [Engine 隔离](#engine-隔离)的方式指定**仅**读取 TiFlash 副本,则查询会报错;而如果使用了[手工 Hint](#手工-hint) 的方式,则 Hint 会被忽略。 +> - TiDB 4.0.3 版本之前,在非只读 SQL 语句中(比如 `INSERT INTO ... SELECT`、`SELECT ... FOR UPDATE`、`UPDATE ...`、`DELETE ...`)读取 TiFlash,行为是未定义。 +> - TiDB 4.0.3 到 6.4.0 之间的版本,TiDB 内部会对非只读 SQL 语句忽略 TiFlash 副本以保证数据写入、更新、删除的正确性。对应的,如果使用了[智能选择](#智能选择)的方式,TiDB 会自动选择非 TiFlash 副本;如果使用了 [Engine 隔离](#engine-隔离)的方式指定**仅**读取 TiFlash 副本,则查询会报错;而如果使用了[手工 Hint](#手工-hint) 的方式,则 Hint 会被忽略。 +> - TiDB 6.5.0 到 7.0.0 之间的版本,如果 TiFlash 副本被允许使用,TiDB 将通过变量[tidb_enable_tiflash_read_for_write_stmt](/system-variables.md#tidb_enable_tiflash_read_for_write_stmt-从-v630-版本开始引入) 控制是否允许处理非只读 SQL 语句时使用 TiFlash 副本。 +> - TiDB 7.1.0 版本及后续版本,如果 TiFlash 副本被允许使用,TiDB 在 [SQL 模式](/sql-mode.md)为非严格模式(即 `sql_mode` 值不包含 `STRICT_TRANS_TABLES` 和 `STRICT_ALL_TABLES`)时,自动选择是否使用 TiFlash 副本处理非只读 SQL。 From 59265b610b48728e2d371c6e6b729684c186820e Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Fri, 22 Dec 2023 16:57:33 +0800 Subject: [PATCH 2/8] Update tiflash/use-tidb-to-read-tiflash.md --- tiflash/use-tidb-to-read-tiflash.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tiflash/use-tidb-to-read-tiflash.md b/tiflash/use-tidb-to-read-tiflash.md index 9c1c5fb46e95..8b80e27d8e6a 100644 --- a/tiflash/use-tidb-to-read-tiflash.md +++ b/tiflash/use-tidb-to-read-tiflash.md @@ -123,5 +123,5 @@ select /*+ read_from_storage(tiflash[alias_a,alias_b]) */ ... from table_name_1 > > - TiDB 4.0.3 版本之前,在非只读 SQL 语句中(比如 `INSERT INTO ... SELECT`、`SELECT ... FOR UPDATE`、`UPDATE ...`、`DELETE ...`)读取 TiFlash,行为是未定义。 > - TiDB 4.0.3 到 6.4.0 之间的版本,TiDB 内部会对非只读 SQL 语句忽略 TiFlash 副本以保证数据写入、更新、删除的正确性。对应的,如果使用了[智能选择](#智能选择)的方式,TiDB 会自动选择非 TiFlash 副本;如果使用了 [Engine 隔离](#engine-隔离)的方式指定**仅**读取 TiFlash 副本,则查询会报错;而如果使用了[手工 Hint](#手工-hint) 的方式,则 Hint 会被忽略。 -> - TiDB 6.5.0 到 7.0.0 之间的版本,如果 TiFlash 副本被允许使用,TiDB 将通过变量[tidb_enable_tiflash_read_for_write_stmt](/system-variables.md#tidb_enable_tiflash_read_for_write_stmt-从-v630-版本开始引入) 控制是否允许处理非只读 SQL 语句时使用 TiFlash 副本。 +> - TiDB 6.5.0 到 7.0.0 之间的版本,如果 TiFlash 副本被允许使用,TiDB 将通过变量 [tidb_enable_tiflash_read_for_write_stmt](/system-variables.md#tidb_enable_tiflash_read_for_write_stmt-从-v630-版本开始引入) 控制是否允许处理非只读 SQL 语句时使用 TiFlash 副本。 > - TiDB 7.1.0 版本及后续版本,如果 TiFlash 副本被允许使用,TiDB 在 [SQL 模式](/sql-mode.md)为非严格模式(即 `sql_mode` 值不包含 `STRICT_TRANS_TABLES` 和 `STRICT_ALL_TABLES`)时,自动选择是否使用 TiFlash 副本处理非只读 SQL。 From 457c2fa26d6eb83a26b0567f42cae88fb48c26a7 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Fri, 22 Dec 2023 17:08:14 +0800 Subject: [PATCH 3/8] Update tiflash/use-tidb-to-read-tiflash.md Co-authored-by: Liqi Geng --- tiflash/use-tidb-to-read-tiflash.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tiflash/use-tidb-to-read-tiflash.md b/tiflash/use-tidb-to-read-tiflash.md index 8b80e27d8e6a..b536dbd9e2af 100644 --- a/tiflash/use-tidb-to-read-tiflash.md +++ b/tiflash/use-tidb-to-read-tiflash.md @@ -123,5 +123,5 @@ select /*+ read_from_storage(tiflash[alias_a,alias_b]) */ ... from table_name_1 > > - TiDB 4.0.3 版本之前,在非只读 SQL 语句中(比如 `INSERT INTO ... SELECT`、`SELECT ... FOR UPDATE`、`UPDATE ...`、`DELETE ...`)读取 TiFlash,行为是未定义。 > - TiDB 4.0.3 到 6.4.0 之间的版本,TiDB 内部会对非只读 SQL 语句忽略 TiFlash 副本以保证数据写入、更新、删除的正确性。对应的,如果使用了[智能选择](#智能选择)的方式,TiDB 会自动选择非 TiFlash 副本;如果使用了 [Engine 隔离](#engine-隔离)的方式指定**仅**读取 TiFlash 副本,则查询会报错;而如果使用了[手工 Hint](#手工-hint) 的方式,则 Hint 会被忽略。 -> - TiDB 6.5.0 到 7.0.0 之间的版本,如果 TiFlash 副本被允许使用,TiDB 将通过变量 [tidb_enable_tiflash_read_for_write_stmt](/system-variables.md#tidb_enable_tiflash_read_for_write_stmt-从-v630-版本开始引入) 控制是否允许处理非只读 SQL 语句时使用 TiFlash 副本。 +> - TiDB 6.3.0 到 7.0.0 之间的版本,如果 TiFlash 副本被允许使用,TiDB 将通过变量 [tidb_enable_tiflash_read_for_write_stmt](/system-variables.md#tidb_enable_tiflash_read_for_write_stmt-从-v630-版本开始引入) 控制是否允许处理非只读 SQL 语句时使用 TiFlash 副本。 > - TiDB 7.1.0 版本及后续版本,如果 TiFlash 副本被允许使用,TiDB 在 [SQL 模式](/sql-mode.md)为非严格模式(即 `sql_mode` 值不包含 `STRICT_TRANS_TABLES` 和 `STRICT_ALL_TABLES`)时,自动选择是否使用 TiFlash 副本处理非只读 SQL。 From 307cdb304e9e4410ebb5dfa12a484ddc485b5534 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Mon, 25 Dec 2023 14:59:06 +0800 Subject: [PATCH 4/8] Update tiflash/use-tidb-to-read-tiflash.md Co-authored-by: Grace Cai --- tiflash/use-tidb-to-read-tiflash.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tiflash/use-tidb-to-read-tiflash.md b/tiflash/use-tidb-to-read-tiflash.md index b536dbd9e2af..803e32cf4dad 100644 --- a/tiflash/use-tidb-to-read-tiflash.md +++ b/tiflash/use-tidb-to-read-tiflash.md @@ -123,5 +123,5 @@ select /*+ read_from_storage(tiflash[alias_a,alias_b]) */ ... from table_name_1 > > - TiDB 4.0.3 版本之前,在非只读 SQL 语句中(比如 `INSERT INTO ... SELECT`、`SELECT ... FOR UPDATE`、`UPDATE ...`、`DELETE ...`)读取 TiFlash,行为是未定义。 > - TiDB 4.0.3 到 6.4.0 之间的版本,TiDB 内部会对非只读 SQL 语句忽略 TiFlash 副本以保证数据写入、更新、删除的正确性。对应的,如果使用了[智能选择](#智能选择)的方式,TiDB 会自动选择非 TiFlash 副本;如果使用了 [Engine 隔离](#engine-隔离)的方式指定**仅**读取 TiFlash 副本,则查询会报错;而如果使用了[手工 Hint](#手工-hint) 的方式,则 Hint 会被忽略。 -> - TiDB 6.3.0 到 7.0.0 之间的版本,如果 TiFlash 副本被允许使用,TiDB 将通过变量 [tidb_enable_tiflash_read_for_write_stmt](/system-variables.md#tidb_enable_tiflash_read_for_write_stmt-从-v630-版本开始引入) 控制是否允许处理非只读 SQL 语句时使用 TiFlash 副本。 +> - TiDB 6.3.0 到 7.0.0 之间的版本,如果 TiFlash 副本被允许使用,你可以通过变量 [tidb_enable_tiflash_read_for_write_stmt](/system-variables.md#tidb_enable_tiflash_read_for_write_stmt-从-v630-版本开始引入) 控制是否允许 TiDB 在处理非只读 SQL 语句时使用 TiFlash 副本。 > - TiDB 7.1.0 版本及后续版本,如果 TiFlash 副本被允许使用,TiDB 在 [SQL 模式](/sql-mode.md)为非严格模式(即 `sql_mode` 值不包含 `STRICT_TRANS_TABLES` 和 `STRICT_ALL_TABLES`)时,自动选择是否使用 TiFlash 副本处理非只读 SQL。 From db5a22c137d74640b92062924d8fd9eebb2f713a Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Mon, 25 Dec 2023 14:59:35 +0800 Subject: [PATCH 5/8] Update tiflash/use-tidb-to-read-tiflash.md Co-authored-by: Grace Cai --- tiflash/use-tidb-to-read-tiflash.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tiflash/use-tidb-to-read-tiflash.md b/tiflash/use-tidb-to-read-tiflash.md index 803e32cf4dad..42c4da339bad 100644 --- a/tiflash/use-tidb-to-read-tiflash.md +++ b/tiflash/use-tidb-to-read-tiflash.md @@ -124,4 +124,4 @@ select /*+ read_from_storage(tiflash[alias_a,alias_b]) */ ... from table_name_1 > - TiDB 4.0.3 版本之前,在非只读 SQL 语句中(比如 `INSERT INTO ... SELECT`、`SELECT ... FOR UPDATE`、`UPDATE ...`、`DELETE ...`)读取 TiFlash,行为是未定义。 > - TiDB 4.0.3 到 6.4.0 之间的版本,TiDB 内部会对非只读 SQL 语句忽略 TiFlash 副本以保证数据写入、更新、删除的正确性。对应的,如果使用了[智能选择](#智能选择)的方式,TiDB 会自动选择非 TiFlash 副本;如果使用了 [Engine 隔离](#engine-隔离)的方式指定**仅**读取 TiFlash 副本,则查询会报错;而如果使用了[手工 Hint](#手工-hint) 的方式,则 Hint 会被忽略。 > - TiDB 6.3.0 到 7.0.0 之间的版本,如果 TiFlash 副本被允许使用,你可以通过变量 [tidb_enable_tiflash_read_for_write_stmt](/system-variables.md#tidb_enable_tiflash_read_for_write_stmt-从-v630-版本开始引入) 控制是否允许 TiDB 在处理非只读 SQL 语句时使用 TiFlash 副本。 -> - TiDB 7.1.0 版本及后续版本,如果 TiFlash 副本被允许使用,TiDB 在 [SQL 模式](/sql-mode.md)为非严格模式(即 `sql_mode` 值不包含 `STRICT_TRANS_TABLES` 和 `STRICT_ALL_TABLES`)时,自动选择是否使用 TiFlash 副本处理非只读 SQL。 +> - 从 TiDB 7.1.0 起,如果 TiFlash 副本被允许使用且当前会话的 [SQL 模式](/sql-mode.md)为非严格模式(即 `sql_mode` 值不包含 `STRICT_TRANS_TABLES` 和 `STRICT_ALL_TABLES`),TiDB 在处理非只读 SQL 语句时会根据代价估算自动选择是否使用 TiFlash 副本。 From d4142391cb9b7356e78e7059dcb14390dd004b63 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Mon, 25 Dec 2023 18:36:28 +0800 Subject: [PATCH 6/8] Update tiflash/use-tidb-to-read-tiflash.md Co-authored-by: Liqi Geng --- tiflash/use-tidb-to-read-tiflash.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tiflash/use-tidb-to-read-tiflash.md b/tiflash/use-tidb-to-read-tiflash.md index 42c4da339bad..56a143b81912 100644 --- a/tiflash/use-tidb-to-read-tiflash.md +++ b/tiflash/use-tidb-to-read-tiflash.md @@ -122,6 +122,6 @@ select /*+ read_from_storage(tiflash[alias_a,alias_b]) */ ... from table_name_1 > **注意:** > > - TiDB 4.0.3 版本之前,在非只读 SQL 语句中(比如 `INSERT INTO ... SELECT`、`SELECT ... FOR UPDATE`、`UPDATE ...`、`DELETE ...`)读取 TiFlash,行为是未定义。 -> - TiDB 4.0.3 到 6.4.0 之间的版本,TiDB 内部会对非只读 SQL 语句忽略 TiFlash 副本以保证数据写入、更新、删除的正确性。对应的,如果使用了[智能选择](#智能选择)的方式,TiDB 会自动选择非 TiFlash 副本;如果使用了 [Engine 隔离](#engine-隔离)的方式指定**仅**读取 TiFlash 副本,则查询会报错;而如果使用了[手工 Hint](#手工-hint) 的方式,则 Hint 会被忽略。 +> - TiDB 4.0.3 到 6.2.0 之间的版本,TiDB 内部会对非只读 SQL 语句忽略 TiFlash 副本以保证数据写入、更新、删除的正确性。对应的,如果使用了[智能选择](#智能选择)的方式,TiDB 会自动选择非 TiFlash 副本;如果使用了 [Engine 隔离](#engine-隔离)的方式指定**仅**读取 TiFlash 副本,则查询会报错;而如果使用了[手工 Hint](#手工-hint) 的方式,则 Hint 会被忽略。 > - TiDB 6.3.0 到 7.0.0 之间的版本,如果 TiFlash 副本被允许使用,你可以通过变量 [tidb_enable_tiflash_read_for_write_stmt](/system-variables.md#tidb_enable_tiflash_read_for_write_stmt-从-v630-版本开始引入) 控制是否允许 TiDB 在处理非只读 SQL 语句时使用 TiFlash 副本。 > - 从 TiDB 7.1.0 起,如果 TiFlash 副本被允许使用且当前会话的 [SQL 模式](/sql-mode.md)为非严格模式(即 `sql_mode` 值不包含 `STRICT_TRANS_TABLES` 和 `STRICT_ALL_TABLES`),TiDB 在处理非只读 SQL 语句时会根据代价估算自动选择是否使用 TiFlash 副本。 From 25c8d9db1bf10cadffc442cb36175cbfb88fad48 Mon Sep 17 00:00:00 2001 From: joey-yez <104608045+joey-yez@users.noreply.github.com> Date: Mon, 25 Dec 2023 18:38:36 +0800 Subject: [PATCH 7/8] Update tiflash/use-tidb-to-read-tiflash.md --- tiflash/use-tidb-to-read-tiflash.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tiflash/use-tidb-to-read-tiflash.md b/tiflash/use-tidb-to-read-tiflash.md index 56a143b81912..92bc516b9d60 100644 --- a/tiflash/use-tidb-to-read-tiflash.md +++ b/tiflash/use-tidb-to-read-tiflash.md @@ -121,7 +121,7 @@ select /*+ read_from_storage(tiflash[alias_a,alias_b]) */ ... from table_name_1 > **注意:** > -> - TiDB 4.0.3 版本之前,在非只读 SQL 语句中(比如 `INSERT INTO ... SELECT`、`SELECT ... FOR UPDATE`、`UPDATE ...`、`DELETE ...`)读取 TiFlash,行为是未定义。 +> - TiDB 4.0.3 版本之前,在非只读 SQL 语句中(比如 `INSERT INTO ... SELECT`、`SELECT ... FOR UPDATE`、`UPDATE ...`、`DELETE ...`)读取 TiFlash,行为是未定义的。 > - TiDB 4.0.3 到 6.2.0 之间的版本,TiDB 内部会对非只读 SQL 语句忽略 TiFlash 副本以保证数据写入、更新、删除的正确性。对应的,如果使用了[智能选择](#智能选择)的方式,TiDB 会自动选择非 TiFlash 副本;如果使用了 [Engine 隔离](#engine-隔离)的方式指定**仅**读取 TiFlash 副本,则查询会报错;而如果使用了[手工 Hint](#手工-hint) 的方式,则 Hint 会被忽略。 > - TiDB 6.3.0 到 7.0.0 之间的版本,如果 TiFlash 副本被允许使用,你可以通过变量 [tidb_enable_tiflash_read_for_write_stmt](/system-variables.md#tidb_enable_tiflash_read_for_write_stmt-从-v630-版本开始引入) 控制是否允许 TiDB 在处理非只读 SQL 语句时使用 TiFlash 副本。 > - 从 TiDB 7.1.0 起,如果 TiFlash 副本被允许使用且当前会话的 [SQL 模式](/sql-mode.md)为非严格模式(即 `sql_mode` 值不包含 `STRICT_TRANS_TABLES` 和 `STRICT_ALL_TABLES`),TiDB 在处理非只读 SQL 语句时会根据代价估算自动选择是否使用 TiFlash 副本。 From 921ae8a1a1ce7ab967258e42ebd445f7ad72f6fc Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 26 Dec 2023 16:08:01 +0800 Subject: [PATCH 8/8] Update tiflash/use-tidb-to-read-tiflash.md --- tiflash/use-tidb-to-read-tiflash.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tiflash/use-tidb-to-read-tiflash.md b/tiflash/use-tidb-to-read-tiflash.md index 92bc516b9d60..65ab251169a9 100644 --- a/tiflash/use-tidb-to-read-tiflash.md +++ b/tiflash/use-tidb-to-read-tiflash.md @@ -123,5 +123,5 @@ select /*+ read_from_storage(tiflash[alias_a,alias_b]) */ ... from table_name_1 > > - TiDB 4.0.3 版本之前,在非只读 SQL 语句中(比如 `INSERT INTO ... SELECT`、`SELECT ... FOR UPDATE`、`UPDATE ...`、`DELETE ...`)读取 TiFlash,行为是未定义的。 > - TiDB 4.0.3 到 6.2.0 之间的版本,TiDB 内部会对非只读 SQL 语句忽略 TiFlash 副本以保证数据写入、更新、删除的正确性。对应的,如果使用了[智能选择](#智能选择)的方式,TiDB 会自动选择非 TiFlash 副本;如果使用了 [Engine 隔离](#engine-隔离)的方式指定**仅**读取 TiFlash 副本,则查询会报错;而如果使用了[手工 Hint](#手工-hint) 的方式,则 Hint 会被忽略。 -> - TiDB 6.3.0 到 7.0.0 之间的版本,如果 TiFlash 副本被允许使用,你可以通过变量 [tidb_enable_tiflash_read_for_write_stmt](/system-variables.md#tidb_enable_tiflash_read_for_write_stmt-从-v630-版本开始引入) 控制是否允许 TiDB 在处理非只读 SQL 语句时使用 TiFlash 副本。 +> - TiDB 6.3.0 到 7.0.0 之间的版本,如果 TiFlash 副本被允许使用,你可以通过变量 [`tidb_enable_tiflash_read_for_write_stmt`](/system-variables.md#tidb_enable_tiflash_read_for_write_stmt-从-v630-版本开始引入) 控制是否允许 TiDB 在处理非只读 SQL 语句时使用 TiFlash 副本。 > - 从 TiDB 7.1.0 起,如果 TiFlash 副本被允许使用且当前会话的 [SQL 模式](/sql-mode.md)为非严格模式(即 `sql_mode` 值不包含 `STRICT_TRANS_TABLES` 和 `STRICT_ALL_TABLES`),TiDB 在处理非只读 SQL 语句时会根据代价估算自动选择是否使用 TiFlash 副本。