Skip to content

Commit

Permalink
Make the introduced version clear for "txn-entry-size-limit" (#18422) (
Browse files Browse the repository at this point in the history
  • Loading branch information
ti-chi-bot committed Aug 26, 2024
1 parent c55a596 commit e44ec55
Show file tree
Hide file tree
Showing 6 changed files with 75 additions and 75 deletions.
4 changes: 2 additions & 2 deletions data-type-string.md
Original file line number Diff line number Diff line change
Expand Up @@ -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" >}}

Expand Down Expand Up @@ -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" >}}

Expand Down
2 changes: 1 addition & 1 deletion error-codes.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion faq/migration-tidb-faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -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。实际的大小限制还受机器的物理内存影响。

Expand Down
2 changes: 1 addition & 1 deletion tidb-configuration-file.md
Original file line number Diff line number Diff line change
Expand Up @@ -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` <span class="version-mark">从 v5.0 版本开始引入</span>
### `txn-entry-size-limit` <span class="version-mark">从 v4.0.10 和 v5.0.0 版本开始引入</span>

+ TiDB 单行数据的大小限制
+ 默认值:6291456
Expand Down
2 changes: 1 addition & 1 deletion tidb-lightning/tidb-lightning-faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 ...`

Expand Down
138 changes: 69 additions & 69 deletions tidb-limitations.md
Original file line number Diff line number Diff line change
@@ -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) 调整 |

0 comments on commit e44ec55

Please sign in to comment.