TiDB 基本功能
本文列出了 TiDB 功能在各版本的支持变化情况。请注意,实验特性的支持可能会在最终版本发布前发生变化。
数据类型,函数和操作符
| 数据类型,函数,操作符 | 5.4 | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
|---|---|---|---|---|---|---|
| 数值类型 | 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 |
| 字符串函数 | 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 |
| JSON 函数 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 |
| 聚合函数 | 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 |
索引和约束
| 索引和约束 | 5.4 | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
|---|---|---|---|---|---|---|
| 表达式索引 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 |
| 列式存储 (TiFlash) | Y | Y | Y | Y | Y | Y |
| RocksDB 引擎 | Y | Y | Y | Y | Y | Y |
| Titan 插件 | Y | Y | Y | Y | Y | Y |
| 不可见索引 | Y | Y | Y | Y | Y | N |
| 复合主键 | Y | Y | Y | Y | Y | Y |
| 唯一约束 | Y | Y | Y | Y | Y | Y |
| 整型主键上的聚簇索引 | Y | Y | Y | Y | Y | Y |
| 复合或非整型主键上的聚簇索引 | Y | Y | Y | Y | Y | N |
SQL 语句
| SQL 语句 2 | 5.4 | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
|---|---|---|---|---|---|---|
SELECT,INSERT,UPDATE,DELETE,REPLACE | Y | Y | Y | Y | Y | Y |
INSERT ON DUPLICATE KEY UPDATE | Y | Y | Y | Y | Y | Y |
LOAD DATA INFILE | Y | Y | Y | Y | Y | Y |
SELECT INTO OUTFILE | Y | Y | Y | Y | Y | Y |
INNER JOIN, LEFT|RIGHT [OUTER] JOIN | Y | Y | Y | Y | Y | Y |
UNION,UNION ALL | Y | Y | Y | Y | Y | Y |
EXCEPT 和 INTERSECT 运算符 | Y | Y | Y | Y | Y | N |
GROUP BY,ORDER BY | Y | Y | Y | Y | Y | Y |
| 窗口函数 | Y | Y | Y | Y | Y | Y |
| 公共表表达式 (CTE) | Y | Y | Y | Y | N | N |
START TRANSACTION,COMMIT,ROLLBACK | Y | Y | Y | Y | Y | Y |
EXPLAIN | Y | Y | Y | Y | Y | Y |
EXPLAIN ANALYZE | Y | Y | Y | Y | Y | Y |
| 用户自定义变量 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 |
| 表级锁 (Table Lock) | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 |
高级 SQL 功能
| 高级 SQL 功能 | 5.4 | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
|---|---|---|---|---|---|---|
| 执行计划缓存 | Y | Y | 实验特性 | 实验特性 | 实验特性 | 实验特性 |
| 执行计划管理 (SPM) | Y | Y | Y | Y | Y | Y |
| 下推计算结果缓存 (Coprocessor Cache) | Y | Y | Y | Y | Y | 实验特性 |
| Stale Read | Y | Y | Y | Y | N | N |
| Follower Read | Y | Y | Y | Y | Y | Y |
| 通过系统变量 tidb_snapshot 读取历史数据 | Y | Y | Y | Y | Y | Y |
| Optimizer hints | Y | Y | Y | Y | Y | Y |
| MPP 执行引擎 | Y | Y | Y | Y | Y | N |
| 索引合并 | Y | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 |
| Placement Rules in SQL | 实验特性 | 实验特性 | N | N | N | N |
数据定义语言 (DDL)
| 数据定义语言 (DDL) | 5.4 | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
|---|---|---|---|---|---|---|
CREATE,DROP,ALTER,RENAME,TRUNCATE | 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 | Y |
AUTO_RANDOM 列 | Y | Y | Y | Y | Y | Y |
| DDL 算法断言 | Y | Y | Y | Y | Y | Y |
| 在单条语句中添加多列 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 |
| 更改列类型 | Y | Y | Y | Y | N | N |
| 临时表 | Y | Y | N | N | N | N |
事务
| 事务 | 5.4 | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
|---|---|---|---|---|---|---|
| Async commit | Y | Y | Y | Y | Y | N |
| 1PC | Y | Y | Y | Y | Y | N |
| 大事务 (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 |
分区
| 分区 | 5.4 | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
|---|---|---|---|---|---|---|
| Range 分区 | Y | Y | Y | Y | Y | Y |
| Hash 分区 | Y | Y | Y | Y | Y | Y |
| List 分区 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | N |
| List COLUMNS 分区 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | N |
EXCHANGE PARTITION | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | N |
| 动态裁剪 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | N | N |
统计信息
| 统计信息 | 5.4 | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
|---|---|---|---|---|---|---|
| CM-Sketch | 已废弃 | 已废弃 | 已废弃 | 已废弃 | 已废弃 | Y |
| 直方图 | Y | Y | Y | Y | Y | Y |
| 扩展统计信息(多列) | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | N |
| 统计反馈 | 已废弃 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 |
安全
| 安全 | 5.4 | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
|---|---|---|---|---|---|---|
| 传输层加密 (TLS) | Y | Y | Y | Y | Y | Y |
| 静态加密 (TDE) | Y | Y | Y | Y | Y | Y |
| 基于角色的访问控制 (RBAC) | Y | Y | Y | Y | Y | Y |
| 证书鉴权 | Y | Y | Y | Y | Y | Y |
caching_sha2_password 认证 | Y | Y | Y | N | N | N |
与 MySQL 兼容的 GRANT 权限管理 | Y | Y | Y | Y | Y | Y |
| 动态权限 | Y | Y | Y | Y | N | N |
| 安全增强模式 | Y | Y | Y | Y | N | N |
| 日志脱敏 | Y | Y | Y | Y | Y | N |
数据导入和导出
| 数据导入和导出 | 5.4 | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
|---|---|---|---|---|---|---|
| 快速导入 (TiDB Lightning) | Y | Y | Y | Y | Y | Y |
| mydumper 逻辑导出 | 已废弃 | 已废弃 | 已废弃 | 已废弃 | 已废弃 | 已废弃 |
| Dumpling 逻辑导出 | Y | Y | Y | Y | Y | Y |
事务 LOAD DATA | Y | Y | Y | Y | Y | N 3 |
| 数据迁移工具 | Y | Y | Y | Y | Y | Y |
| TiDB Binlog | Y | Y | Y | Y | Y | Y |
| Change data capture (CDC) | Y | Y | Y | Y | Y | Y |
管理,可视化和工具
| 管理,可视化诊断和工具 | 5.4 | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
|---|---|---|---|---|---|---|
| TiDB Dashboard | Y | Y | Y | Y | Y | Y |
| SQL 诊断 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 |
| Information schema | Y | Y | Y | Y | Y | Y |
| Metrics schema | Y | Y | Y | Y | Y | Y |
| Statements summary tables | Y | Y | Y | Y | Y | Y |
| 慢查询日志 | Y | Y | Y | Y | Y | Y |
| TiUP 部署 | Y | Y | Y | Y | Y | Y |
| Ansible 部署 | N | N | N | N | N | 已废弃 |
| Kubernetes operator | Y | Y | Y | Y | Y | Y |
| 内置物理备份 | Y | Y | Y | Y | Y | Y |
| Global Kill | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 |
| Lock View | Y | Y | Y | 实验特性 | 实验特性 | 实验特性 |
SHOW CONFIG | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 | 实验特性 |
SET CONFIG | Y | Y | Y | Y | Y | Y |
| 持续性能分析 | 实验特性 | 实验特性 | N | N | N | N |
| Top SQL | 实验特性 | N | N | N | N | N |
- TiDB 误将 latin1 处理为 utf8 的子集。见 TiDB #18955。↩
- TiDB 支持的完整 SQL 列表,见语句参考。↩
- 对于 TiDB v4.0,事务
LOAD DATA不保证原子性。↩