TiDB 功能概览

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

功能概览 - 图1

注意

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

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

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

数据类型,函数和操作符

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

索引和约束

索引和约束8.17.57.16.56.15.45.35.25.1
表达式索引 2YYYYEEEEE
列式存储 (TiFlash)YYYYYYYYY
使用 FastScan 加速 OLAP 场景下的查询YYYENNNNN
RocksDB 引擎YYYYYYYYY
Titan 插件YYYYYYYYY
Titan Level MergeEEEEEEEEE
使用 bucket 提高数据扫描并发度EEEEENNNN
不可见索引YYYYYYYYY
复合主键YYYYYYYYY
CHECK 约束YYNNNNNNN
唯一约束YYYYYYYYY
整型主键上的聚簇索引YYYYYYYYY
复合或非整型主键上的聚簇索引YYYYYYYYY
多值索引YYYNNNNNN
外键约束EEENNNNNN
TiFlash 延迟物化YYYNNNNNN

SQL 语句

SQL 语句 38.17.57.16.56.15.45.35.25.1
SELECTINSERTUPDATEDELETEREPLACEYYYYYYYYY
INSERT ON DUPLICATE KEY UPDATEYYYYYYYYY
LOAD DATA INFILEYYYYYYYYY
SELECT INTO OUTFILEYYYYYYYYY
INNER JOIN, LEFT|RIGHT [OUTER] JOINYYYYYYYYY
UNIONUNION ALLYYYYYYYYY
EXCEPT 和 INTERSECT 运算符YYYYYYYYY
GROUP BYORDER BYYYYYYYYYY
窗口函数YYYYYYYYY
公共表表达式 (CTE)YYYYYYYYY
START TRANSACTIONCOMMITROLLBACKYYYYYYYYY
EXPLAINYYYYYYYYY
EXPLAIN ANALYZEYYYYYYYYY
用户自定义变量EEEEEEEEE
BATCH [ON COLUMN] LIMIT INTEGER DELETEYYYYYNNNN
BATCH [ON COLUMN] LIMIT INTEGER INSERT/UPDATE/REPLACEYYYYNNNNN
ALTER TABLE … COMPACTYYYYENNNN
表级锁 (Table Lock)EEEEEEEEE
物化列式存储的查询结果YYYENNNNN

高级 SQL 功能

高级 SQL 功能8.17.57.16.56.15.45.35.25.1
Prepare 语句执行计划缓存YYYYYYYEE
非 Prepare 语句执行计划缓存YYENNNNNN
执行计划绑定 (SQL Binding)YYYYYYYYY
跨数据库执行计划绑定 (Cross-DB Binding)YNNNNNNNN
根据历史执行计划创建绑定YYYENNNNN
下推计算结果缓存 (Coprocessor Cache)YYYYYYYYY
Stale ReadYYYYYYYYY
Follower ReadYYYYYYYYY
通过系统变量 tidb_snapshot 读取历史数据YYYYYYYYY
Optimizer hintsYYYYYYYYY
MPP 执行引擎YYYYYYYYY
MPP 执行引擎 - compression exchangeYYYNNNNNN
TiFlash Pipeline 执行模型YYNNNNNNN
TiFlash 副本选择策略YYNNNNNNN
索引合并YYYYYYEEE
基于 SQL 的数据放置规则YYYYYEENN
Cascades PlannerEEEEEEEEE
Runtime FilterYYNNNNNNN

数据定义语言 (DDL)

数据定义语言 (DDL)8.17.57.16.56.15.45.35.25.1
CREATEDROPALTERRENAMETRUNCATEYYYYYYYYY
生成列YYYEEEEEE
视图YYYYYYYYY
序列YYYYYYYYY
AUTO_INCREMENT 列YYYY4YYYYY
AUTO_RANDOM 列YYYYYYYYY
TTL (Time to Live)YYYENNNNN
DDL 算法断言YYYYYYYYY
在单条语句中添加多列YYYYEEEEE
更改列类型YYYYYYYYY
临时表YYYYYYYNN
并行 DDLYYYYNNNNN
添加索引加速YYYYNNNNN
元数据锁YYYYNNNNN
FLASHBACK CLUSTERYYYYNNNNN
暂停/恢复 DDLYYNNNNNNN
TiDB 加速建表ENNNNNNNN
设置 BDR Role 用于 TiCDC 双向同步时同步 DDLENNNNNNNN

事务

事务8.17.57.16.56.15.45.35.25.1
Async commitYYYYYYYYY
1PCYYYYYYYYY
大事务 (10 GB)YYYYYYYYY
悲观事务YYYYYYYYY
乐观事务YYYYYYYYY
可重复读隔离(快照隔离)YYYYYYYYY
读已提交隔离YYYYYYYYY
自动终止长时间未提交的空闲事务YNNNNNNNN

分区

分区8.17.57.16.56.15.45.35.25.1
Range 分区YYYYYYYYY
Hash 分区YYYYYYYYY
Key 分区YYYNNNNNN
List 分区YYYYYEEEE
List COLUMNS 分区YYYYYEEEE
List 和 List COLUMNS 分区表的默认分区YYNNNNNNN
EXCHANGE PARTITIONYYYYEEEEE
REORGANIZE PARTITIONYYYNNNNNN
COALESCE PARTITIONYYYNNNNNN
动态裁剪YYYYYEEEE
Range COLUMNS 分区YYYYNNNNN
Range INTERVAL 分区YYYENNNNN
分区表转换为非分区表YYNNNNNNN
对现有表进行分区YYNNNNNNN

统计信息

统计信息8.17.57.16.56.15.45.35.25.1
CM-Sketch默认关闭默认关闭默认关闭默认关闭默认关闭默认关闭默认关闭YY
直方图YYYYYYYYY
扩展统计信息EEEEEEEEE
统计反馈NNNN已废弃已废弃EEE
统计信息自动更新YYYYYYYYY
动态裁剪YYYYYEEEE
收集部分列的统计信息EEEEEENNN
限制统计信息的内存使用量EEEEENNNN
随机采样约 10000 行数据来快速构建统计信息已废弃已废弃EEEEEEE
锁定统计信息YYEENNNNN
轻量级统计信息初始化YYENNNNNN
显示统计信息收集的进度YYNNNNNNN

安全

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

数据导入和导出

数据导入和导出8.17.57.16.56.15.45.35.25.1
快速导入 (TiDB Lightning)YYYYYYYYY
快速导入 (IMPORT INTO)YYNNNNNNN
mydumper 逻辑导出已废弃已废弃已废弃已废弃已废弃已废弃已废弃已废弃已废弃
Dumpling 逻辑导出YYYYYYYYY
事务 LOAD DATA 5YYYYYYYYY
数据迁移工具YYYYYYYYY
TiDB Binlog 6YYYYYYYYY
Change data capture (CDC)YYYYYYYYY
TiCDC 支持保存数据到存储服务 (Amazon S3/GCS/Azure Blob Storage/NFS)YYYENNNNN
TiCDC 支持在两个 TiDB 集群之间进行双向复制YYYYNNNNN
TiCDC OpenAPI v2YYYNNNNNN
DM 支持迁移 MySQL 8.0YEEEENNNN

管理,可视化和工具

管理,可视化和工具8.17.57.16.56.15.45.35.25.1
TiDB Dashboard 图形化展示YYYYYYYYY
TiDB Dashboard 持续性能分析功能YYYYYEENN
TiDB Dashboard Top SQL 功能YYYYYENNN
TiDB Dashboard SQL 诊断功能YYYYEEEEE
TiDB Dashboard 集群诊断功能YYYYEEEEE
Grafana 中的 TiKV-FastTune 面板EEEEEEEEE
Information schemaYYYYYYYYY
Metrics schemaYYYYYYYYY
Statements summary tablesYYYYYYYYY
Statements summary tables - 持久化 statements summaryEEENNNNNN
慢查询日志YYYYYYYYY
TiUP 部署YYYYYYYYY
Kubernetes operatorYYYYYYYYY
内置物理备份YYYYYYYYY
Global KillYYYYYEEEE
Lock ViewYYYYYYYYE
SHOW CONFIGYYYYYYYYY
SET CONFIGYYYYYEEEE
DM WebUIEEEEENNNN
前台限流YYYYENNNN
后台限流EEEENNNNN
基于 EBS 的备份和恢复YYYYNNNNN
PITRYYYYNNNNN
全局内存控制YYYYNNNNN
RawKV 跨集群复制EEEENNNNN
Green GCEEEEEEEEE
资源管控 (Resource Control)YYYNNNNNN
Runaway Queries 自动管理YENNNNNNN
后台任务资源管控EENNNNNNN
TiFlash 存算分离架构与 S3 支持YYENNNNNN
选择执行分布式执行框架任务的 TiDB 节点YYNNNNNNN
通过系统变量 tidb_enable_tso_follower_proxy 控制 PD Follower Proxy 功能YYYYYYYNN
通过系统变量 pd_enable_follower_handle_region 控制 Active PD Follower 功能ENNNNNNNN
PD 微服务ENNNNNNNN
TiDB 分布式执行框架YYENNNNNN
全局排序YENNNNNNN

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