TiDB 功能概览

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

数据类型,函数和操作符

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

索引和约束

索引和约束8.38.28.17.57.16.56.15.45.35.25.1
表达式索引 2YYYYYYEEEEE
列式存储 (TiFlash)YYYYYYYYYYY
使用 FastScan 加速 OLAP 场景下的查询YYYYYENNNNN
RocksDB 引擎YYYYYYYYYYY
Titan 插件YYYYYYYYYYY
Titan Level MergeEEEEEEEEEEE
使用 bucket 提高数据扫描并发度EEEEEEENNNN
不可见索引YYYYYYYYYYY
复合主键YYYYYYYYYYY
CHECK 约束YYYYNNNNNNN
唯一约束YYYYYYYYYYY
整型主键上的聚簇索引YYYYYYYYYYY
复合或非整型主键上的聚簇索引YYYYYYYYYYY
多值索引YYYYYNNNNNN
外键约束EEEEENNNNNN
TiFlash 延迟物化YYYYYNNNNNN
全局索引 (Global Index)ENNNNNNNNNN

SQL 语句

SQL 语句 38.38.28.17.57.16.56.15.45.35.25.1
SELECTINSERTUPDATEDELETEREPLACEYYYYYYYYYYY
INSERT ON DUPLICATE KEY UPDATEYYYYYYYYYYY
LOAD DATA INFILEYYYYYYYYYYY
SELECT INTO OUTFILEYYYYYYYYYYY
INNER JOIN, LEFT|RIGHT [OUTER] JOINYYYYYYYYYYY
UNIONUNION ALLYYYYYYYYYYY
EXCEPTINTERSECT 运算符YYYYYYYYYYY
GROUP BYORDER BYYYYYYYYYYYY
GROUP BY 修饰符YYYYNNNNNNN
窗口函数YYYYYYYYYYY
公共表表达式 (CTE)YYYYYYYYYYY
START TRANSACTIONCOMMITROLLBACKYYYYYYYYYYY
EXPLAINYYYYYYYYYYY
EXPLAIN ANALYZEYYYYYYYYYYY
用户自定义变量EEEEEEEEEEE
BATCH [ON COLUMN] LIMIT INTEGER DELETEYYYYYYYNNNN
BATCH [ON COLUMN] LIMIT INTEGER INSERT/UPDATE/REPLACEYYYYYYNNNNN
ALTER TABLE ... COMPACTYYYYYYENNNN
表级锁 (Table Lock)EEEEEEEEEEE
物化列式存储的查询结果YYYYYENNNNN

高级 SQL 功能

高级 SQL 功能8.38.28.17.57.16.56.15.45.35.25.1
Prepare 语句执行计划缓存YYYYYYYYYEE
非 Prepare 语句执行计划缓存YYYYENNNNNN
执行计划绑定 (SQL Binding)YYYYYYYYYYY
跨数据库执行计划绑定 (Cross-DB Binding)YYYNNNNNNNN
根据历史执行计划创建绑定YYYYYENNNNN
下推计算结果缓存 (Coprocessor Cache)YYYYYYYYYYY
Stale ReadYYYYYYYYYYY
Follower ReadYYYYYYYYYYY
通过系统变量 tidb_snapshot 读取历史数据YYYYYYYYYYY
Optimizer hintsYYYYYYYYYYY
MPP 执行引擎YYYYYYYYYYY
MPP 执行引擎 - compression exchangeYYYYYNNNNNN
TiFlash Pipeline 执行模型YYYYNNNNNNN
TiFlash 副本选择策略YYYYNNNNNNN
索引合并YYYYYYYYEEE
基于 SQL 的数据放置规则YYYYYYYEENN
Cascades PlannerEEEEEEEEEEE
Runtime FilterYYYYNNNNNNN

数据定义语言 (DDL)

数据定义语言 (DDL)8.38.28.17.57.16.56.15.45.35.25.1
CREATEDROPALTERRENAMETRUNCATEYYYYYYYYYYY
生成列YYYYYEEEEEE
视图YYYYYYYYYYY
序列YYYYYYYYYYY
AUTO_INCREMENTYYYYYY4YYYYY
AUTO_RANDOMYYYYYYYYYYY
TTL (Time to Live)YYYYYENNNNN
DDL 算法断言YYYYYYYYYYY
在单条语句中添加多列YYYYYYEEEEE
更改列类型YYYYYYYYYYY
临时表YYYYYYYYYNN
并行 DDLYYYYYYNNNNN
添加索引加速YYYYYYNNNNN
元数据锁YYYYYNNNNN
FLASHBACK CLUSTERYYYYYYNNNNN
暂停/恢复 DDLYYYYNNNNNNN
TiDB 加速建表EEENNNNNNNN
设置 BDR Role 用于 TiCDC 双向同步时同步 DDLYEENNNNNNNN

事务

事务8.38.28.17.57.16.56.15.45.35.25.1
Async commitYYYYYYYYYYY
1PCYYYYYYYYYYY
大事务 (10 GB)YYYYYYYYYYY
悲观事务YYYYYYYYYYY
乐观事务YYYYYYYYYYY
可重复读隔离(快照隔离)YYYYYYYYYYY
读已提交隔离YYYYYYYYYYY
自动终止长时间未提交的空闲事务YYYNNNNNNNN

分区

分区8.38.28.17.57.16.56.15.45.35.25.1
Range 分区YYYYYYYYYYY
Hash 分区YYYYYYYYYYY
Key 分区YYYYYNNNNNN
List 分区YYYYYYYEEEE
List COLUMNS 分区YYYYYYYEEEE
List 和 List COLUMNS 分区表的默认分区YYYYNNNNNNN
EXCHANGE PARTITIONYYYYYYEEEEE
REORGANIZE PARTITIONYYYYYNNNNNN
COALESCE PARTITIONYYYYYNNNNNN
动态裁剪YYYYYYYEEEE
Range COLUMNS 分区YYYYYYNNNNN
Range INTERVAL 分区YYYYYENNNNN
分区表转换为非分区表YYYYNNNNNNN
对现有表进行分区YYYYNNNNNNN

统计信息

统计信息8.38.28.17.57.16.56.15.45.35.25.1
CM-Sketch默认关闭默认关闭默认关闭默认关闭默认关闭默认关闭默认关闭默认关闭默认关闭YY
直方图YYYYYYYYYYY
扩展统计信息EEEEEEEEEEE
统计反馈NNNNNN已废弃已废弃EEE
统计信息自动更新YYYYYYYYYYY
动态裁剪YYYYYYYEEEE
收集部分列的统计信息YEEEEEEENNN
限制统计信息的内存使用量EEEEEEENNNN
随机采样约 10000 行数据来快速构建统计信息已废弃已废弃已废弃已废弃EEEEEEE
锁定统计信息YYYYEENNNNN
轻量级统计信息初始化YYYYENNNNNN
显示统计信息收集的进度YYYYNNNNNNN

安全

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

数据导入和导出

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

管理,可视化和工具

管理,可视化和工具8.38.28.17.57.16.56.15.45.35.25.1
TiDB Dashboard 图形化展示YYYYYYYYYYY
TiDB Dashboard 持续性能分析功能YYYYYYYEENN
TiDB Dashboard Top SQL 功能YYYYYYYENNN
TiDB Dashboard SQL 诊断功能YYYYYYEEEEE
TiDB Dashboard 集群诊断功能YYYYYYEEEEE
Grafana 中的 TiKV-FastTune 面板EEEEEEEEEEE
Information schemaYYYYYYYYYYY
Metrics schemaYYYYYYYYYYY
Statements summary tablesYYYYYYYYYYY
Statements summary tables - 持久化 statements summaryEEEEENNNNNN
慢查询日志YYYYYYYYYYY
TiUP 部署YYYYYYYYYYY
Kubernetes operatorYYYYYYYYYYY
内置物理备份YYYYYYYYYYY
Global KillYYYYYYYEEEE
Lock ViewYYYYYYYYYYE
SHOW CONFIGYYYYYYYYYYY
SET CONFIGYYYYYYYEEEE
DM WebUIEEEEEEENNNN
前台限流YYYYYYENNNN
后台限流EEEEEENNNNN
基于 EBS 的备份和恢复YYYYYYNNNNN
PITRYYYYYYNNNNN
全局内存控制YYYYYYNNNNN
RawKV 跨集群复制EEEEEENNNNN
Green GCEEEEEEEEEEE
资源管控 (Resource Control)YYYYYNNNNNN
Runaway Queries 自动管理YYYENNNNNNN
后台任务资源管控EEEENNNNNNN
TiFlash 存算分离架构与 S3 支持YYYYENNNNNN
选择执行分布式执行框架任务的 TiDB 节点YYYYNNNNNNN
通过系统变量 tidb_enable_tso_follower_proxy 控制 PD Follower Proxy 功能YYYYYYYYYNN
通过系统变量 pd_enable_follower_handle_region 控制 Active PD Follower 功能EEENNNNNNNN
PD 微服务EEENNNNNNNN
TiDB 分布式执行框架YYYYENNNNNN
全局排序YYYENNNNNNN
TiProxyYYYNNNNNNNN

  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 的数据同步功能被废弃。从 v8.3.0 开始,TiDB Binlog 被完全废弃,并计划在未来版本中移除。如需进行增量数据同步,请使用 TiCDC。如需按时间点恢复 (point-in-time recovery, PITR),请使用 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 事务模式设置(乐观/悲观)影响。

文档内容是否有帮助?