TiDB 功能概览

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

功能概览 - 图1

注意

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

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

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

数据类型,函数和操作符

数据类型,函数,操作符7.57.16.56.15.45.35.25.15.04.0
数值类型YYYYYYYYYY
日期和时间类型YYYYYYYYYY
字符串类型YYYYYYYYYY
JSON 类型YYYEEEEEEE
控制流程函数YYYYYYYYYY
字符串函数YYYYYYYYYY
数值函数与操作符YYYYYYYYYY
日期和时间函数YYYYYYYYYY
位函数和操作符YYYYYYYYYY
Cast 函数和操作符YYYYYYYYYY
加密和压缩函数YYYYYYYYYY
信息函数YYYYYYYYYY
JSON 函数YYYEEEEEEE
聚合函数YYYYYYYYYY
窗口函数YYYYYYYYYY
其他函数YYYYYYYYYY
操作符YYYYYYYYYY
字符集和排序规则 1YYYYYYYYYY
用户级别锁YYYYNNNNNN

索引和约束

索引和约束7.57.16.56.15.45.35.25.15.04.0
表达式索引 2YYYEEEEEEE
列式存储 (TiFlash)YYYYYYYYYY
使用 FastScan 加速 OLAP 场景下的查询YYENNNNNNN
RocksDB 引擎YYYYYYYYYY
Titan 插件YYYYYYYYYY
Titan Level MergeEEEEEEEEEE
使用 bucket 提高数据扫描并发度EEEENNNNNN
不可见索引YYYYYYYYYN
复合主键YYYYYYYYYY
CHECK 约束YNNNNNNNNN
唯一约束YYYYYYYYYY
整型主键上的聚簇索引YYYYYYYYYY
复合或非整型主键上的聚簇索引YYYYYYYYYN
多值索引YYNNNNNNNN
外键约束EENNNNNNNN
TiFlash 延迟物化YYNNNNNNNN

SQL 语句

SQL 语句 37.57.16.56.15.45.35.25.15.04.0
SELECTINSERTUPDATEDELETEREPLACEYYYYYYYYYY
INSERT ON DUPLICATE KEY UPDATEYYYYYYYYYY
LOAD DATA INFILEYYYYYYYYYY
SELECT INTO OUTFILEYYYYYYYYYY
INNER JOIN, LEFT|RIGHT [OUTER] JOINYYYYYYYYYY
UNIONUNION ALLYYYYYYYYYY
EXCEPT 和 INTERSECT 运算符YYYYYYYYYN
GROUP BYORDER BYYYYYYYYYYY
窗口函数YYYYYYYYYY
公共表表达式 (CTE)YYYYYYYYNN
START TRANSACTIONCOMMITROLLBACKYYYYYYYYYY
EXPLAINYYYYYYYYYY
EXPLAIN ANALYZEYYYYYYYYY
用户自定义变量EEEEEEEEEE
BATCH [ON COLUMN] LIMIT INTEGER DELETEYYYYNNNNNN
BATCH [ON COLUMN] LIMIT INTEGER INSERT/UPDATE/REPLACEYYYNNNNNNN
ALTER TABLE … COMPACTYYYENNNNNN
表级锁 (Table Lock)EEEEEEEEEE
物化列式存储的查询结果YYENNNNNNN

高级 SQL 功能

高级 SQL 功能7.57.16.56.15.45.35.25.15.04.0
Prepare 语句执行计划缓存YYYYYYEEEE
非 Prepare 语句执行计划缓存YENNNNNNNN
执行计划管理 (SPM)YYYYYYYYYY
根据历史执行计划创建绑定YYENNNNNNN
下推计算结果缓存 (Coprocessor Cache)YYYYYYYYYE
Stale ReadYYYYYYYYNN
Follower ReadYYYYYYYYYY
通过系统变量 tidb_snapshot 读取历史数据YYYYYYYYYY
Optimizer hintsYYYYYYYYYY
MPP 执行引擎YYYYYYYYYN
MPP 执行引擎 - compression exchangeYYNNNNNNNN
TiFlash Pipeline 执行模型YNNNNNNNNN
TiFlash 副本选择策略YNNNNNNNNN
索引合并YYYYYEEEEE
基于 SQL 的数据放置规则YYYYEENNNN
Cascades PlannerEEEEEEEEEE
Runtime FilterYNNNNNNNNN

数据定义语言 (DDL)

数据定义语言 (DDL)7.57.16.56.15.45.35.25.15.04.0
CREATEDROPALTERRENAMETRUNCATEYYYYYYYYYY
生成列YYEEEEEEEE
视图YYYYYYYYYY
序列YYYYYYYYYY
AUTO_INCREMENT 列YYY4YYYYYYY
AUTO_RANDOM 列YYYYYYYYYY
TTL (Time to Live)YYENNNNNNN
DDL 算法断言YYYYYYYYYY
在单条语句中添加多列YYYEEEEEEE
更改列类型YYYYYYYYNN
临时表YYYYYYNNNN
并行 DDLYYYNNNNNNN
添加索引加速YYYNNNNNNN
元数据锁YYYNNNNNNN
FLASHBACK CLUSTERYYYNNNNNNN
暂停/恢复 DDLYNNNNNNNNN

事务

事务7.57.16.56.15.45.35.25.15.04.0
Async commitYYYYYYYYYN
1PCYYYYYYYYYN
大事务 (10 GB)YYYYYYYYYY
悲观事务YYYYYYYYYY
乐观事务YYYYYYYYYY
可重复读隔离(快照隔离)YYYYYYYYYY
读已提交隔离YYYYYYYYYY

分区

分区7.57.16.56.15.45.35.25.15.04.0
Range 分区YYYYYYYYYY
Hash 分区YYYYYYYYYY
Key 分区YYNNNNNNNN
List 分区YYYYEEEEEN
List COLUMNS 分区YYYYEEEEEN
List 和 List COLUMNS 分区表的默认分区YNNNNNNNNN
EXCHANGE PARTITIONYYYEEEEEEN
REORGANIZE PARTITIONYYNNNNNNNN
COALESCE PARTITIONYYNNNNNNNN
动态裁剪YYYYEEEENN
Range COLUMNS 分区YYYNNNNNNN
Range INTERVAL 分区YYENNNNNNN
分区表转换为非分区表YNNNNNNNNN
对现有表进行分区YNNNNNNNNN

统计信息

统计信息7.57.16.56.15.45.35.25.15.04.0
CM-Sketch默认关闭默认关闭默认关闭默认关闭默认关闭默认关闭YYYY
直方图YYYYYYYYYY
扩展统计信息(多列)EEEEEEEEEN
统计反馈NNN已废弃已废弃EEEEE
统计信息自动更新YYYYYYYYYY
快速分析已废弃EEEEEEEEE
动态裁剪YYYYEEEENN
收集部分列的统计信息EEEEENNNNN
限制统计信息的内存使用量EEEENNNNNN
随机采样约 10000 行数据来快速构建统计信息已废弃EEEEEEEEE
锁定统计信息YEENNNNNNN
轻量级统计信息初始化YENNNNNNNN
显示统计信息收集的进度YNNNNNNNNN

安全

安全7.57.16.56.15.45.35.25.15.04.0
传输层加密 (TLS)YYYYYYYYYY
静态加密 (TDE)YYYYYYYYYY
基于角色的访问控制 (RBAC)YYYYYYYYYY
证书鉴权YYYYYYYYYY
caching_sha2_password 认证YYYYYYYNNN
tidb_sm3_password 认证YYYNNNNNNN
tidb_auth_token 认证YYYNNNNNNN
authentication_ldap_sasl 认证YYNNNNNNNN
authentication_ldap_simple 认证YYNNNNNNNN
密码管理YYYNNNNNNN
与 MySQL 兼容的 GRANT 权限管理YYYYYYYYYY
动态权限YYYYYYYYNN
安全增强模式YYYYYYYYNN
日志脱敏YYYYYYYYYN

数据导入和导出

数据导入和导出7.57.16.56.15.45.35.25.15.04.0
快速导入 (TiDB Lightning)YYYYYYYYYY
快速导入 (IMPORT INTO)YNNNNNNNNN
mydumper 逻辑导出已废弃已废弃已废弃已废弃已废弃已废弃已废弃已废弃已废弃已废弃
Dumpling 逻辑导出YYYYYYYYYY
事务 LOAD DATA 5YYYYYYYYYN 6
数据迁移工具YYYYYYYYYY
TiDB Binlog 7YYYYYYYYYY
Change data capture (CDC)YYYYYYYYYY
TiCDC 支持保存数据到存储服务 (Amazon S3/GCS/Azure Blob Storage/NFS)YYENNNNNNN
TiCDC 支持在两个 TiDB 集群之间进行双向复制YYYNNNNNNN
TiCDC OpenAPI v2YYNNNNNNNN

管理,可视化和工具

管理,可视化和工具7.57.16.56.15.45.35.25.15.04.0
TiDB Dashboard 图形化展示YYYYYYYYYY
TiDB Dashboard 持续性能分析功能YYYYEENNNN
TiDB Dashboard Top SQL 功能YYYYENNNNN
TiDB Dashboard SQL 诊断功能YYYEEEEEEE
TiDB Dashboard 集群诊断功能YYYEEEEEEE
Grafana 中的 TiKV-FastTune 面板EEEEEEEEEE
Information schemaYYYYYYYYYY
Metrics schemaYYYYYYYYYY
Statements summary tablesYYYYYYYYYY
Statements summary tables - 持久化 statements summaryEENNNNNNNN
慢查询日志YYYYYYYYYY
TiUP 部署YYYYYYYYYY
Kubernetes operatorYYYYYYYYYY
内置物理备份YYYYYYYYYY
Global KillYYYYEEEEEE
Lock ViewYYYYYYYEEE
SHOW CONFIGYYYYYYYYYY
SET CONFIGYYYYEEEEEE
DM WebUIEEEENNNNNN
前台限流YYYENNNNNN
后台限流EEENNNNNNN
基于 EBS 的备份和恢复YYYNNNNNNN
PITRYYYNNNNNNN
全局内存控制YYYNNNNNNN
RawKV 跨集群复制EEENNNNNNN
Green GCEEEEEEEEEN
资源管控 (Resource Control)YYNNNNNNNN
Runaway Queries 自动管理ENNNNNNNNN
后台任务资源管控ENNNNNNNNN
TiFlash 存算分离架构与 S3 支持YENNNNNNNN
选择执行分布式执行框架任务的 TiDB 节点YNNNNNNNNN

  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. 从 v7.5.0 开始,不再提供 TiDB Binlog 数据同步功能的技术支持,强烈建议使用 TiCDC 实现高效稳定的数据同步。尽管 TiDB Binlog 在 v7.5.0 仍支持 Point-in-Time Recovery (PITR) 场景,但是该组件在未来 LTS 版本中将被完全废弃,推荐使用 PITR 替代。
  6. 对于 TiDB v4.0,事务 LOAD DATA 不保证原子性。
  7. TiDB v7.0.0 开始新增的参数 FIELDS DEFINED NULL BY 以及新增支持从 S3 和 GCS 导入数据,均为实验特性。