Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ttl: updated ttl TTL_JOB_INTERVAL description #19202

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
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
10 changes: 6 additions & 4 deletions time-to-live.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,15 +128,17 @@ CREATE TABLE orders (

## TTL 任务

对于每张设置了 TTL 属性的表,TiDB 内部会定期调度后台任务来清理过期的数据。你可以通过给表设置 `TTL_JOB_INTERVAL` 属性来自定义任务的执行周期,比如通过下面的语句将后台清理任务设置为每 24 小时执行一次:
对于每张设置了 TTL 属性的表,TiDB 内部会定期调度后台任务来清理过期的数据。你可以通过给表设置 `TTL_JOB_INTERVAL` 属性来自定义任务的执行周期,比如通过下面的语句将后台清理任务设置为每 48 小时执行一次:

```sql
ALTER TABLE orders TTL_JOB_INTERVAL = '24h';
ALTER TABLE orders TTL_JOB_INTERVAL = '48h';
```

`TTL_JOB_INTERVAL` 的默认值是 `1h`。
`TTL_JOB_INTERVAL` 的默认值是 `24h` (v8.5 及之前的版本为 `1h`)
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
`TTL_JOB_INTERVAL` 的默认值是 `24h` (v8.5 及之前的版本为 `1h`)
`TTL_JOB_INTERVAL` 的默认值是 `24h`。在 v8.5.0 及之前的版本中,默认值为 `1h`

Copy link
Contributor Author

Choose a reason for hiding this comment

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

如果之后发布了 8.5.1 这样说会不会不准确?


在执行 TTL 任务时,TiDB 会基于 Region 的数量将表拆分为最多 64 个子任务。这些子任务会被分发到不同的 TiDB 节点中执行。你可以通过设置系统变量 [`tidb_ttl_running_tasks`](/system-variables.md#tidb_ttl_running_tasks-从-v700-版本开始引入) 来限制整个集群中同时执行的 TTL 子任务数量。然而,并非所有表的 TTL 任务都可以被拆分为子任务。请参考[使用限制](#使用限制)以了解哪些表的 TTL 任务不能被拆分。
在执行 TTL 任务时,TiDB 会基于 Region 的数量将表拆分为多个子任务。这些子任务会被分发到不同的 TiDB 节点中执行。通常情况下,单个表的子任务个数最多为 64,但是对于更大规模比如 TiKV 实例个数超过了 64 的集群,单个表可拆分成的最大子任务数量和 TiKV 实例个数相等。然而,并非所有表的 TTL 任务都可以被拆分为子任务。请参考[使用限制](#使用限制)以了解哪些表的 TTL 任务不能被拆分。
lcwangchao marked this conversation as resolved.
Show resolved Hide resolved

TiDB 同时也会在集群级别限制并发执行的 TTL 子任务的数。你可以通过改变系统变量 [`tidb_ttl_running_tasks`](/system-variables.md#tidb_ttl_running_tasks-从-v700-版本开始引入) 来设置其最大的并行数量。
lcwangchao marked this conversation as resolved.
Show resolved Hide resolved

如果想禁止 TTL 任务的执行,除了可以设置表属性 `TTL_ENABLE='OFF'` 外,也可以通过设置全局变量 `tidb_ttl_job_enable` 关闭整个集群的 TTL 任务的执行。

Expand Down
Loading