Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion sql-statements/sql-statement-modify-column.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,12 @@ aliases: ['/docs-cn/dev/sql-statements/sql-statement-modify-column/','/docs-cn/d
- `DECIMAL` 精度修改
- 从 `VARCHAR(10)` 到 `VARCHAR(5)` 的长度压缩

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Reorg-Data 指的是在修改列类型时,TiDB 需要对表中的现有数据进行重建,包括读取原数据,按照新的数据格式进行处理,然后重新写入表中。这类操作通常比较耗时,时间消耗与表中的数据量成正比。

从 v8.5.4 版本起,TiDB 优化了部分 Reorg-Data 类型变更的执行效率。在 [SQL 模式](/sql-mode.md)非严格模式(即 `sql_mode` 值包含 `STRICT_TRANS_TABLES` 或 `STRICT_ALL_TABLES`),以下类型变更将不再进行数据重建(Meta-Only 变更):
- 整数类型之间的变更(例如 `BIGINT` 到 `INT`)
- 字符串类型之间的变更(例如 `VARCHAR(200)` 到 `VARCHAR(100)`)

注意:VARCHAR 类型往 CHAR 类型变更时,要求所有的旧数据的尾部均不包含空格,否则需要进行 Reorg-Data。

## 语法图

```ebnf+diagram
Expand Down Expand Up @@ -168,7 +174,7 @@ CREATE TABLE `t1` (
> ERROR 1406 (22001): Data Too Long, field len 4, data len 5
> ```
>
> - 由于和 Async Commit 功能兼容,DDL 在开始进入到 Reorg Data 前会有一定时间(约 2.5s)的等待处理:
> - 由于和 Async Commit 功能兼容, 在关闭元数据锁的情况下,DDL 在开始进入到 Reorg Data 前会有一定时间(约 2.5s)的等待处理:
>
> ```
> Query OK, 0 rows affected (2.52 sec)
Expand Down