From e44ec556535e29c6df3765e82518e87c33d013dd Mon Sep 17 00:00:00 2001 From: Ti Chi Robot Date: Mon, 26 Aug 2024 16:03:16 +0800 Subject: [PATCH] Make the introduced version clear for "txn-entry-size-limit" (#18422) (#18427) --- data-type-string.md | 4 +- error-codes.md | 2 +- faq/migration-tidb-faq.md | 2 +- tidb-configuration-file.md | 2 +- tidb-lightning/tidb-lightning-faq.md | 2 +- tidb-limitations.md | 138 +++++++++++++-------------- 6 files changed, 75 insertions(+), 75 deletions(-) diff --git a/data-type-string.md b/data-type-string.md index 4d7685ebc6fa..1573db112fdd 100644 --- a/data-type-string.md +++ b/data-type-string.md @@ -70,7 +70,7 @@ MEDIUMTEXT [CHARACTER SET charset_name] [COLLATE collation_name] ### `LONGTEXT` 类型 -类似于 [`TEXT`](#text-类型),区别在于最大列长度为 4,294,967,295。但由于 [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-从-v50-版本开始引入) 的限制,TiDB 中默认单行存储最大不超过 6 MiB,可通过配置项将该限制调整至 120 MiB。 +类似于 [`TEXT`](#text-类型),区别在于最大列长度为 4,294,967,295。但由于 [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-从-v4010-和-v500-版本开始引入) 的限制,TiDB 中默认单行存储最大不超过 6 MiB,可通过配置项将该限制调整至 120 MiB。 {{< copyable "sql" >}} @@ -130,7 +130,7 @@ MEDIUMBLOB ### `LONGBLOB` 类型 -类似于 [`BLOB`](#blob-类型),区别在于最大列长度为 4,294,967,295。但由于 [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-从-v50-版本开始引入) 的限制,TiDB 中默认单行存储最大不超过 6 MiB,可通过配置项将该限制调整至 120 MiB。 +类似于 [`BLOB`](#blob-类型),区别在于最大列长度为 4,294,967,295。但由于 [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-从-v4010-和-v500-版本开始引入) 的限制,TiDB 中默认单行存储最大不超过 6 MiB,可通过配置项将该限制调整至 120 MiB。 {{< copyable "sql" >}} diff --git a/error-codes.md b/error-codes.md index b574a13624e7..ad7ef3d8886c 100644 --- a/error-codes.md +++ b/error-codes.md @@ -66,7 +66,7 @@ TiDB 兼容 MySQL 的错误码,在大多数情况下,返回和 MySQL 一样 * Error Number: 8025 - 写入的单条键值对过大。TiDB 默认支持最大 6MB 的单个键值对,超过该限制可适当调整 [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-从-v50-版本开始引入) 配置项以放宽限制。 + 写入的单条键值对过大。TiDB 默认支持最大 6MB 的单个键值对,超过该限制可适当调整 [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-从-v4010-和-v500-版本开始引入) 配置项以放宽限制。 * Error Number: 8026 diff --git a/faq/migration-tidb-faq.md b/faq/migration-tidb-faq.md index 7b33d8452b6a..35e93c2ba448 100644 --- a/faq/migration-tidb-faq.md +++ b/faq/migration-tidb-faq.md @@ -142,7 +142,7 @@ TiDB 读流量可以通过增加 TiDB server 进行扩展,总读容量无限 ### Transaction too large 是什么原因,怎么解决? -TiDB 限制了单条 KV entry 不超过 6MB,可以修改配置文件中的 [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-从-v50-版本开始引入) 配置项进行调整,最大可以修改到 120MB。 +TiDB 限制了单条 KV entry 不超过 6MB,可以修改配置文件中的 [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-从-v4010-和-v500-版本开始引入) 配置项进行调整,最大可以修改到 120MB。 分布式事务要做两阶段提交,而且底层还需要做 Raft 复制。如果一个事务非常大,提交过程会非常慢,事务写冲突概率会增加,而且事务失败后回滚会导致不必要的性能开销。所以我们设置了 key-value entry 的总大小默认不超过 100MB。如果业务需要使用大事务,可以修改配置文件中的 `txn-total-size-limit` 配置项进行调整,最大可以修改到 10G。实际的大小限制还受机器的物理内存影响。 diff --git a/tidb-configuration-file.md b/tidb-configuration-file.md index 0832caf7dede..bfa950b2f6b1 100644 --- a/tidb-configuration-file.md +++ b/tidb-configuration-file.md @@ -378,7 +378,7 @@ TiDB 配置文件比命令行参数支持更多的选项。你可以在 [config/ + 当 TiDB 检测到 tidb-server 的内存使用超过了阈值,则会认为存在内存溢出的风险,会将当前正在执行的所有 SQL 语句中内存使用最高的 10 条语句和运行时间最长的 10 条语句以及 heap profile 记录到目录 [`tmp-storage-path/record`](/tidb-configuration-file.md#tmp-storage-path) 中,并输出一条包含关键字 `tidb-server has the risk of OOM` 的日志。 + 该值作为系统变量 [`tidb_memory_usage_alarm_ratio`](/system-variables.md#tidb_memory_usage_alarm_ratio) 的初始值。 -### `txn-entry-size-limit` 从 v5.0 版本开始引入 +### `txn-entry-size-limit` 从 v4.0.10 和 v5.0.0 版本开始引入 + TiDB 单行数据的大小限制 + 默认值:6291456 diff --git a/tidb-lightning/tidb-lightning-faq.md b/tidb-lightning/tidb-lightning-faq.md index 99daf6d61e46..fc417152a9b2 100644 --- a/tidb-lightning/tidb-lightning-faq.md +++ b/tidb-lightning/tidb-lightning-faq.md @@ -344,7 +344,7 @@ tidb-lightning-ctl --config conf/tidb-lightning.toml --checkpoint-error-destroy= **解决办法**: -同时修改 TiDB 配置项 [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-从-v50-版本开始引入) 和 TiKV 配置项 [`raft-entry-max-size`](/tikv-configuration-file.md#raft-entry-max-size),将取值设置为大于需要导入的数据大小并重试后即可绕过该限制。 +同时修改 TiDB 配置项 [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-从-v4010-和-v500-版本开始引入) 和 TiKV 配置项 [`raft-entry-max-size`](/tikv-configuration-file.md#raft-entry-max-size),将取值设置为大于需要导入的数据大小并重试后即可绕过该限制。 ## switch-mode 时遇到 `rpc error: code = Unimplemented ...` diff --git a/tidb-limitations.md b/tidb-limitations.md index 1d8832f8a646..ddcb6b007fe2 100644 --- a/tidb-limitations.md +++ b/tidb-limitations.md @@ -1,69 +1,69 @@ ---- -title: TiDB 使用限制 ---- - -# 使用限制 - -本文会将详细描述 TiDB 中常见的使用限制,包括:标识符长度,最大支持的数据库、表、索引、分区表、序列等的个数。 - -## 标识符长度限制 - -| 标识符类型 | 最大长度(字符)| -|:---------|:--------------| -| Database | 64 | -| Table | 64 | -| Column | 64 | -| Index | 64 | -| View | 64 | -| Sequence | 64 | - -## Databases、Tables、Views、Connections 总个数限制 - -| 标识符类型 | 最大个数 | -|:----------|:----------| -| Databases | unlimited | -| Tables | unlimited | -| Views | unlimited | -| Connections| unlimited| - -## 单个 Database 的限制 - -| 类型 | 最大限制 | -|:----------|:----------| -| Tables |unlimited | - -## 单个 Table 的限制 - -| 类型 | 最大限制(默认值) | -|:----------|:------------------------------| -| Columns | 默认为 1017,最大可调至 4096 | -| Indexs | 默认为 64,最大可调至 512 | -| Rows | 无限制 | -| Size | 无限制 | -| Partitions| 8192 | - -* Columns 的最大限制可通过 [`table-column-count-limit`](/tidb-configuration-file.md#table-column-count-limit-从-v50-版本开始引入) 修改。 -* Indexs 的最大限制可通过 [`index-limit`](/tidb-configuration-file.md#index-limit-从-v50-版本开始引入) 修改。 - -## 单行的限制 - -| 类型 | 最大限制 | -|:----------|:----------| -| Size | 默认为 6MB,可通过 [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-从-v50-版本开始引入) 配置项调整 | - -## 字符串类型限制 - -| 类型 | 最大限制 | -|:----------|:----------| -| CHAR | 256 字符 | -| BINARY | 256 字节 | -| VARBINARY | 65535 字节 | -| VARCHAR | 16383 字符 | -| TEXT | 6MB 字节 | -| BLOB | 6MB 字节 | - -## SQL Statements 的限制 - -| 类型 | 最大限制 | -|:----------|:----------| -| 单个事务最大语句数 | 在使用乐观事务并开启事务重试的情况下,默认限制 5000,可通过 [`stmt-count-limit`](/tidb-configuration-file.md#stmt-count-limit) 调整 | +--- +title: TiDB 使用限制 +--- + +# 使用限制 + +本文会将详细描述 TiDB 中常见的使用限制,包括:标识符长度,最大支持的数据库、表、索引、分区表、序列等的个数。 + +## 标识符长度限制 + +| 标识符类型 | 最大长度(字符)| +|:---------|:--------------| +| Database | 64 | +| Table | 64 | +| Column | 64 | +| Index | 64 | +| View | 64 | +| Sequence | 64 | + +## Databases、Tables、Views、Connections 总个数限制 + +| 标识符类型 | 最大个数 | +|:----------|:----------| +| Databases | unlimited | +| Tables | unlimited | +| Views | unlimited | +| Connections| unlimited| + +## 单个 Database 的限制 + +| 类型 | 最大限制 | +|:----------|:----------| +| Tables |unlimited | + +## 单个 Table 的限制 + +| 类型 | 最大限制(默认值) | +|:----------|:------------------------------| +| Columns | 默认为 1017,最大可调至 4096 | +| Indexes | 默认为 64,最大可调至 512 | +| Rows | 无限制 | +| Size | 无限制 | +| Partitions| 8192 | + +* Columns 的最大限制可通过 [`table-column-count-limit`](/tidb-configuration-file.md#table-column-count-limit-从-v50-版本开始引入) 修改。 +* Indexes 的最大限制可通过 [`index-limit`](/tidb-configuration-file.md#index-limit-从-v50-版本开始引入) 修改。 + +## 单行的限制 + +| 类型 | 最大限制 | +|:----------|:----------| +| Size | 默认为 6MB,可通过 [`txn-entry-size-limit`](/tidb-configuration-file.md#txn-entry-size-limit-从-v4010-和-v500-版本开始引入) 配置项调整 | + +## 字符串类型限制 + +| 类型 | 最大限制 | +|:----------|:----------| +| CHAR | 256 字符 | +| BINARY | 256 字节 | +| VARBINARY | 65535 字节 | +| VARCHAR | 16383 字符 | +| TEXT | 6MB 字节 | +| BLOB | 6MB 字节 | + +## SQL Statements 的限制 + +| 类型 | 最大限制 | +|:----------|:----------| +| 单个事务最大语句数 | 在使用乐观事务并开启事务重试的情况下,默认限制 5000,可通过 [`stmt-count-limit`](/tidb-configuration-file.md#stmt-count-limit) 调整 |