Skip to content

Latest commit

 

History

History
275 lines (244 loc) · 27 KB

basic-features.md

File metadata and controls

275 lines (244 loc) · 27 KB
title summary aliases
TiDB 功能概览
了解 TiDB 的功能概览。
/docs-cn/dev/basic-features/
/docs-cn/dev/experimental-features-4.0/
/zh/tidb/dev/experimental-features-4.0/
/zh/tidb/dev/experimental-features

TiDB 功能概览

本文列出了 TiDB 功能在不同版本中的支持变化情况,包括长期支持版本 (LTS) 和最新的 LTS 版本之后的开发里程碑版本 (DMR)

注意:

PingCAP 不提供基于 DMR 版本的 bug 修复版本,如有 bug,会在后续版本中修复。如无特殊需求,建议使用最新 LTS 版本

下表中出现的缩写字母含义如下:

  • Y:已 GA 的功能,可以在生产环境中使用。注意即使某个功能在 DMR 版本中 GA,也建议在后续 LTS 版本中将该功能用于生产环境。
  • N:不支持该功能。
  • E:未 GA 的功能,即实验特性 (experimental),请注意使用场景限制。实验特性会在未事先通知的情况下发生变化或删除。语法和实现可能会在 GA 前发生变化。如果遇到问题,请在 GitHub 上提交 issue 反馈。

数据类型,函数和操作符

数据类型,函数,操作符 8.3 8.2 8.1 7.5 7.1 6.5 6.1 5.4 5.3 5.2 5.1
数值类型 Y Y Y Y Y Y Y Y Y Y Y
日期和时间类型 Y Y Y Y Y Y Y Y Y Y Y
字符串类型 Y Y Y Y Y Y Y Y Y Y Y
JSON 类型 Y Y Y Y Y Y E E E E E
控制流程函数 Y Y Y Y Y Y Y Y Y Y Y
字符串函数 Y Y Y Y Y Y Y Y Y Y Y
数值函数与操作符 Y Y Y Y Y Y Y Y Y Y Y
日期和时间函数 Y Y Y Y Y Y Y Y Y Y Y
位函数和操作符 Y Y Y Y Y Y Y Y Y Y Y
Cast 函数和操作符 Y Y Y Y Y Y Y Y Y Y Y
加密和压缩函数 Y Y Y Y Y Y Y Y Y Y Y
信息函数 Y Y Y Y Y Y Y Y Y Y Y
JSON 函数 Y Y Y Y Y Y E E E E E
聚合函数 Y Y Y Y Y Y Y Y Y Y Y
窗口函数 Y Y Y Y Y Y Y Y Y Y Y
其他函数 Y Y Y Y Y Y Y Y Y Y Y
操作符 Y Y Y Y Y Y Y Y Y Y Y
字符集和排序规则 1 Y Y Y Y Y Y Y Y Y Y Y
用户级别锁 Y Y Y Y Y Y Y N N N N

索引和约束

索引和约束 8.3 8.2 8.1 7.5 7.1 6.5 6.1 5.4 5.3 5.2 5.1
表达式索引 2 Y Y Y Y Y Y E E E E E
列式存储 (TiFlash) Y Y Y Y Y Y Y Y Y Y Y
使用 FastScan 加速 OLAP 场景下的查询 Y Y Y Y Y E N N N N N
RocksDB 引擎 Y Y Y Y Y Y Y Y Y Y Y
Titan 插件 Y Y Y Y Y Y Y Y Y Y Y
Titan Level Merge E E E E E E E E E E E
使用 bucket 提高数据扫描并发度 E E E E E E E N N N N
不可见索引 Y Y Y Y Y Y Y Y Y Y Y
复合主键 Y Y Y Y Y Y Y Y Y Y Y
CHECK 约束 Y Y Y Y N N N N N N N
唯一约束 Y Y Y Y Y Y Y Y Y Y Y
整型主键上的聚簇索引 Y Y Y Y Y Y Y Y Y Y Y
复合或非整型主键上的聚簇索引 Y Y Y Y Y Y Y Y Y Y Y
多值索引 Y Y Y Y Y N N N N N N
外键约束 E E E E E N N N N N N
TiFlash 延迟物化 Y Y Y Y Y N N N N N N
全局索引 (Global Index) E N N N N N N N N N N

SQL 语句

SQL 语句 3 8.3 8.2 8.1 7.5 7.1 6.5 6.1 5.4 5.3 5.2 5.1
SELECTINSERTUPDATEDELETEREPLACE Y Y Y Y Y Y Y Y Y Y Y
INSERT ON DUPLICATE KEY UPDATE Y Y Y Y Y Y Y Y Y Y Y
LOAD DATA INFILE Y Y Y Y Y Y Y Y Y Y Y
SELECT INTO OUTFILE Y Y Y Y Y Y Y Y Y Y Y
INNER JOIN, LEFT|RIGHT [OUTER] JOIN Y Y Y Y Y Y Y Y Y Y Y
UNIONUNION ALL Y Y Y Y Y Y Y Y Y Y Y
EXCEPTINTERSECT 运算符 Y Y Y Y Y Y Y Y Y Y Y
GROUP BYORDER BY Y Y Y Y Y Y Y Y Y Y Y
GROUP BY 修饰符 Y Y Y Y N N N N N N N
窗口函数 Y Y Y Y Y Y Y Y Y Y Y
公共表表达式 (CTE) Y Y Y Y Y Y Y Y Y Y Y
START TRANSACTIONCOMMITROLLBACK Y Y Y Y Y Y Y Y Y Y Y
EXPLAIN Y Y Y Y Y Y Y Y Y Y Y
EXPLAIN ANALYZE Y Y Y Y Y Y Y Y Y Y Y
用户自定义变量 E E E E E E E E E E E
BATCH [ON COLUMN] LIMIT INTEGER DELETE Y Y Y Y Y Y Y N N N N
BATCH [ON COLUMN] LIMIT INTEGER INSERT/UPDATE/REPLACE Y Y Y Y Y Y N N N N N
ALTER TABLE ... COMPACT Y Y Y Y Y Y E N N N N
表级锁 (Table Lock) E E E E E E E E E E E
物化列式存储的查询结果 Y Y Y Y Y E N N N N N

高级 SQL 功能

高级 SQL 功能 8.3 8.2 8.1 7.5 7.1 6.5 6.1 5.4 5.3 5.2 5.1
Prepare 语句执行计划缓存 Y Y Y Y Y Y Y Y Y E E
非 Prepare 语句执行计划缓存 Y Y Y Y E N N N N N N
执行计划绑定 (SQL Binding) Y Y Y Y Y Y Y Y Y Y Y
跨数据库执行计划绑定 (Cross-DB Binding) Y Y Y N N N N N N N N
根据历史执行计划创建绑定 Y Y Y Y Y E N N N N N
下推计算结果缓存 (Coprocessor Cache) Y Y Y Y Y Y Y Y Y Y Y
Stale Read Y Y Y Y Y Y Y Y Y Y Y
Follower Read Y Y Y Y Y Y Y Y Y Y Y
通过系统变量 tidb_snapshot 读取历史数据 Y Y Y Y Y Y Y Y Y Y Y
Optimizer hints Y Y Y Y Y Y Y Y Y Y Y
MPP 执行引擎 Y Y Y Y Y Y Y Y Y Y Y
MPP 执行引擎 - compression exchange Y Y Y Y Y N N N N N N
TiFlash Pipeline 执行模型 Y Y Y Y N N N N N N N
TiFlash 副本选择策略 Y Y Y Y N N N N N N N
索引合并 Y Y Y Y Y Y Y Y E E E
基于 SQL 的数据放置规则 Y Y Y Y Y Y Y E E N N
Cascades Planner E E E E E E E E E E E
Runtime Filter Y Y Y Y N N N N N N N

数据定义语言 (DDL)

数据定义语言 (DDL) 8.3 8.2 8.1 7.5 7.1 6.5 6.1 5.4 5.3 5.2 5.1
CREATEDROPALTERRENAMETRUNCATE Y Y Y Y Y Y Y Y Y Y Y
生成列 Y Y Y Y Y E E E E E E
视图 Y Y Y Y Y Y Y Y Y Y Y
序列 Y Y Y Y Y Y Y Y Y Y Y
AUTO_INCREMENT Y Y Y Y Y Y4 Y Y Y Y Y
AUTO_RANDOM Y Y Y Y Y Y Y Y Y Y Y
TTL (Time to Live) Y Y Y Y Y E N N N N N
DDL 算法断言 Y Y Y Y Y Y Y Y Y Y Y
在单条语句中添加多列 Y Y Y Y Y Y E E E E E
更改列类型 Y Y Y Y Y Y Y Y Y Y Y
临时表 Y Y Y Y Y Y Y Y Y N N
并行 DDL Y Y Y Y Y Y N N N N N
添加索引加速 Y Y Y Y Y Y N N N N N
元数据锁 Y Y Y Y Y N N N N N
FLASHBACK CLUSTER Y Y Y Y Y Y N N N N N
暂停/恢复 DDL Y Y Y Y N N N N N N N
TiDB 加速建表 E E E N N N N N N N N
设置 BDR Role 用于 TiCDC 双向同步时同步 DDL Y E E N N N N N N N N

事务

事务 8.3 8.2 8.1 7.5 7.1 6.5 6.1 5.4 5.3 5.2 5.1
Async commit Y Y Y Y Y Y Y Y Y Y Y
1PC Y Y Y Y Y Y Y Y Y Y Y
大事务 (10 GB) Y Y Y Y Y Y Y Y Y Y Y
悲观事务 Y Y Y Y Y Y Y Y Y Y Y
乐观事务 Y Y Y Y Y Y Y Y Y Y Y
可重复读隔离(快照隔离) Y Y Y Y Y Y Y Y Y Y Y
读已提交隔离 Y Y Y Y Y Y Y Y Y Y Y
自动终止长时间未提交的空闲事务 Y Y Y N N N N N N N N

分区

分区 8.3 8.2 8.1 7.5 7.1 6.5 6.1 5.4 5.3 5.2 5.1
Range 分区 Y Y Y Y Y Y Y Y Y Y Y
Hash 分区 Y Y Y Y Y Y Y Y Y Y Y
Key 分区 Y Y Y Y Y N N N N N N
List 分区 Y Y Y Y Y Y Y E E E E
List COLUMNS 分区 Y Y Y Y Y Y Y E E E E
List 和 List COLUMNS 分区表的默认分区 Y Y Y Y N N N N N N N
EXCHANGE PARTITION Y Y Y Y Y Y E E E E E
REORGANIZE PARTITION Y Y Y Y Y N N N N N N
COALESCE PARTITION Y Y Y Y Y N N N N N N
动态裁剪 Y Y Y Y Y Y Y E E E E
Range COLUMNS 分区 Y Y Y Y Y Y N N N N N
Range INTERVAL 分区 Y Y Y Y Y E N N N N N
分区表转换为非分区表 Y Y Y Y N N N N N N N
对现有表进行分区 Y Y Y Y N N N N N N N

统计信息

统计信息 8.3 8.2 8.1 7.5 7.1 6.5 6.1 5.4 5.3 5.2 5.1
CM-Sketch 默认关闭 默认关闭 默认关闭 默认关闭 默认关闭 默认关闭 默认关闭 默认关闭 默认关闭 Y Y
直方图 Y Y Y Y Y Y Y Y Y Y Y
扩展统计信息 E E E E E E E E E E E
统计反馈 N N N N N N 已废弃 已废弃 E E E
统计信息自动更新 Y Y Y Y Y Y Y Y Y Y Y
动态裁剪 Y Y Y Y Y Y Y E E E E
收集部分列的统计信息 Y E E E E E E E N N N
限制统计信息的内存使用量 E E E E E E E N N N N
随机采样约 10000 行数据来快速构建统计信息 已废弃 已废弃 已废弃 已废弃 E E E E E E E
锁定统计信息 Y Y Y Y E E N N N N N
轻量级统计信息初始化 Y Y Y Y E N N N N N N
显示统计信息收集的进度 Y Y Y Y N N N N N N N

安全

安全 8.3 8.2 8.1 7.5 7.1 6.5 6.1 5.4 5.3 5.2 5.1
传输层加密 (TLS) Y Y Y Y Y Y Y Y Y Y Y
静态加密 (TDE) Y Y Y Y Y Y Y Y Y Y Y
基于角色的访问控制 (RBAC) Y Y Y Y Y Y Y Y Y Y Y
证书鉴权 Y Y Y Y Y Y Y Y Y Y Y
caching_sha2_password 认证 Y Y Y Y Y Y Y Y Y Y N
tidb_sm3_password 认证 Y Y Y Y Y Y N N N N N
tidb_auth_token 认证 Y Y Y Y Y Y N N N N N
authentication_ldap_sasl 认证 Y Y Y Y Y N N N N N N
authentication_ldap_simple 认证 Y Y Y Y Y N N N N N N
密码管理 Y Y Y Y Y Y N N N N N
与 MySQL 兼容的 GRANT 权限管理 Y Y Y Y Y Y Y Y Y Y Y
动态权限 Y Y Y Y Y Y Y Y Y Y Y
安全增强模式 Y Y Y Y Y Y Y Y Y Y Y
日志脱敏 Y Y Y Y Y Y Y Y Y Y Y

数据导入和导出

数据导入和导出 8.3 8.2 8.1 7.5 7.1 6.5 6.1 5.4 5.3 5.2 5.1
快速导入 (TiDB Lightning) Y Y Y Y Y Y Y Y Y Y Y
快速导入 (IMPORT INTO) Y Y Y Y N N N N N N N
mydumper 逻辑导出 已废弃 已废弃 已废弃 已废弃 已废弃 已废弃 已废弃 已废弃 已废弃 已废弃 已废弃
Dumpling 逻辑导出 Y Y Y Y Y Y Y Y Y Y Y
事务 LOAD DATA 5 Y Y Y Y Y Y Y Y Y Y Y
数据迁移工具 Y Y Y Y Y Y Y Y Y Y Y
TiDB Binlog 6 已废弃 Y Y Y Y Y Y Y Y Y Y
Change data capture (CDC) Y Y Y Y Y Y Y Y Y Y Y
TiCDC 支持保存数据到存储服务 (Amazon S3/GCS/Azure Blob Storage/NFS) Y Y Y Y Y E N N N N N
TiCDC 支持在两个 TiDB 集群之间进行双向复制 Y Y Y Y Y Y N N N N N
TiCDC OpenAPI v2 Y Y Y Y Y N N N N N N
DM 支持迁移 MySQL 8.0 Y Y Y E E E E N N N N

管理,可视化和工具

管理,可视化和工具 8.3 8.2 8.1 7.5 7.1 6.5 6.1 5.4 5.3 5.2 5.1
TiDB Dashboard 图形化展示 Y Y Y Y Y Y Y Y Y Y Y
TiDB Dashboard 持续性能分析功能 Y Y Y Y Y Y Y E E N N
TiDB Dashboard Top SQL 功能 Y Y Y Y Y Y Y E N N N
TiDB Dashboard SQL 诊断功能 Y Y Y Y Y Y E E E E E
TiDB Dashboard 集群诊断功能 Y Y Y Y Y Y E E E E E
Grafana 中的 TiKV-FastTune 面板 E E E E E E E E E E E
Information schema Y Y Y Y Y Y Y Y Y Y Y
Metrics schema Y Y Y Y Y Y Y Y Y Y Y
Statements summary tables Y Y Y Y Y Y Y Y Y Y Y
Statements summary tables - 持久化 statements summary E E E E E N N N N N N
慢查询日志 Y Y Y Y Y Y Y Y Y Y Y
TiUP 部署 Y Y Y Y Y Y Y Y Y Y Y
Kubernetes operator Y Y Y Y Y Y Y Y Y Y Y
内置物理备份 Y Y Y Y Y Y Y Y Y Y Y
Global Kill Y Y Y Y Y Y Y E E E E
Lock View Y Y Y Y Y Y Y Y Y Y E
SHOW CONFIG Y Y Y Y Y Y Y Y Y Y Y
SET CONFIG Y Y Y Y Y Y Y E E E E
DM WebUI E E E E E E E N N N N
前台限流 Y Y Y Y Y Y E N N N N
后台限流 E E E E E E N N N N N
基于 EBS 的备份和恢复 Y Y Y Y Y Y N N N N N
PITR Y Y Y Y Y Y N N N N N
全局内存控制 Y Y Y Y Y Y N N N N N
RawKV 跨集群复制 E E E E E E N N N N N
Green GC E E E E E E E E E E E
资源管控 (Resource Control) Y Y Y Y Y N N N N N N
Runaway Queries 自动管理 Y Y Y E N N N N N N N
后台任务资源管控 E E E E N N N N N N N
TiFlash 存算分离架构与 S3 支持 Y Y Y Y E N N N N N N
选择执行分布式执行框架任务的 TiDB 节点 Y Y Y Y N N N N N N N
通过系统变量 tidb_enable_tso_follower_proxy 控制 PD Follower Proxy 功能 Y Y Y Y Y Y Y Y Y N N
通过系统变量 pd_enable_follower_handle_region 控制 Active PD Follower 功能 E E E N N N N N N N N
PD 微服务 E E E N N N N N N N N
TiDB 分布式执行框架 Y Y Y Y E N N N N N N
全局排序 Y Y Y E N N N N N N N
TiProxy Y Y Y N N N N N N N N

Footnotes

  1. TiDB 误将 latin1 处理为 utf8 的子集。见 TiDB #18955

  2. 从 v6.5.0 起,系统变量 tidb_allow_function_for_expression_index 所列出的函数已通过表达式索引的测试,可以在生产环境中创建并使用,未来版本会持续增加。对于没有列出的函数,则不建议在生产环境中使用相应的表达式索引。详情请参考表达式索引

  3. TiDB 支持的完整 SQL 列表,见语句参考

  4. TiDB v6.4.0 开始,支持高性能、全局单调递增的 AUTO_INCREMENT

  5. TiDB v7.0.0 开始新增的参数 FIELDS DEFINED NULL BY 以及新增支持从 S3 和 GCS 导入数据,均为实验特性。从 TiDB v7.6.0 开始 LOAD DATA 的事务行为与 MySQL 的事务行为一致,包括事务内的 LOAD DATA 语句本身不再自动提交当前事务,也不会开启新事务,并且事务内的 LOAD DATA 语句可以被显式提交或者回滚。此外,LOAD DATA 语句会受 TiDB 事务模式设置(乐观/悲观)影响。

  6. 从 v7.5.0 开始,TiDB Binlog 的数据同步功能被废弃。从 v8.3.0 开始,TiDB Binlog 被完全废弃,并计划在未来版本中移除。如需进行增量数据同步,请使用 TiCDC。如需按时间点恢复 (point-in-time recovery, PITR),请使用 PITR