From fbb7b3dfa8e267dd7b3f64a4c162d76e9100a1b4 Mon Sep 17 00:00:00 2001 From: Evan Zhou Date: Thu, 3 Sep 2020 17:08:16 +0800 Subject: [PATCH] add system variable 'tidb_enable_clustered_index' for v5.0 (#4385) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add system variable 'tidb_enable_clustered_index' for v5.0 * Update system-variables.md Co-authored-by: TomShawn <41534398+TomShawn@users.noreply.github.com> * address comment * change back to '和’ * refine words * add doc for checking if table use clustered index. * address comment * remove comma Co-authored-by: TomShawn <41534398+TomShawn@users.noreply.github.com> --- system-variables.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/system-variables.md b/system-variables.md index c7df83e73e48..8d354b190323 100644 --- a/system-variables.md +++ b/system-variables.md @@ -304,6 +304,22 @@ SET GLOBAL tidb_distsql_scan_concurrency = 10; - 默认值: 0 - 这个变量用于控制是否开启 cascades planner。 +### `tidb_enable_clustered_index` 从 v5.0 版本开始引入 + +- 作用域:SESSION | GLOBAL +- 默认值:1 +- 这个变量用于控制是否开启 Clustered Index 特性。 + - 该特性只适用于新创建的表,对于已经创建的旧表不会有影响。 + - 该特性只适用于主键为单列非 INT 类型的表和主键为多列的表。对于无主键的表和主键是单列 INT 类型的表不会有影响。 + - 通过执行 `select tidb_pk_type from information_schema.tables where table_name = '{table_name}'` 可以查看一张表是否使用了 Clustered Index 特性。 +- 特性启用以后,row 会直接存储在主键上,而不再是存储在系统内部分配的 row_id 上并用额外创建的主键索引指向 row_id。 + + 对性能的影响主要体现在以下几个方面: + - 插入的时候每行会减少一个索引 key 的写入。 + - 使用主键作为等值条件查询的时候,会节省一次读取请求。 + - 使用单列主键作为范围条件查询的时候,可以节省多次读取请求。 + - 使用多列主键的前缀作为等值或范围条件查询的时候,可以节省多次读取请求。 + ### `tidb_enable_chunk_rpc` 从 v4.0 版本开始引入 - 作用域:SESSION