平凯数据库功能概览
本文列出了平凯数据库功能在不同版本中的支持变化情况。
数据类型,函数和操作符
| 数据类型,函数,操作符 | 7.1.8 | 7.1.1 |
|---|---|---|
| 数值类型 | Y | Y |
| 日期和时间类型 | Y | Y |
| 字符串类型 | Y | Y |
| JSON 类型 | Y | Y |
| 向量数据类型 | E | N |
| 控制流程函数 | Y | Y |
| 字符串函数 | Y | Y |
| 数值函数与操作符 | Y | Y |
| 日期和时间函数 | Y | Y |
| 位函数和操作符 | Y | Y |
| Cast 函数和操作符 | Y | Y |
| 加密和压缩函数 | Y | Y |
| 向量函数和操作符 | E | N |
| 信息函数 | Y | Y |
| JSON 函数 | Y | Y |
| 聚合函数 | Y | Y |
| 窗口函数 | Y | Y |
| 其他函数 | Y | Y |
| 操作符 | Y | Y |
| 字符集和排序规则 1 | Y | Y |
| 用户级别锁 | Y | Y |
索引和约束
| 索引和约束 | 7.1.8 | 7.1.1 |
|---|---|---|
| 表达式索引 2 | Y | Y |
| 列式存储 (TiFlash) | Y | Y |
| 使用 FastScan 加速 OLAP 场景下的查询 | Y | Y |
| RocksDB 引擎 | Y | Y |
| Titan 插件 | Y | Y |
| Titan Level Merge | E | E |
| 使用 bucket 提高数据扫描并发度 | E | E |
| 不可见索引 | Y | Y |
| 复合主键 | Y | Y |
CHECK 约束 | Y | Y |
| 唯一约束 | Y | Y |
| 整型主键上的聚簇索引 | Y | Y |
| 复合或非整型主键上的聚簇索引 | Y | Y |
| 多值索引 | Y | Y |
| 外键约束 | Y | E |
| TiFlash 延迟物化 | Y | Y |
| 全局索引 (Global Index) | Y | N |
| 向量索引 | E | N |
SQL 语句
| SQL 语句 3 | 7.1.8 | 7.1.1 |
|---|---|---|
SELECT,INSERT,UPDATE,DELETE,REPLACE | Y | Y |
INSERT ON DUPLICATE KEY UPDATE | Y | Y |
LOAD DATA INFILE | Y | Y |
SELECT INTO OUTFILE | Y | Y |
INNER JOIN, LEFT|RIGHT [OUTER] JOIN | Y | Y |
UNION,UNION ALL | Y | Y |
EXCEPT 和 INTERSECT 运算符 | Y | Y |
GROUP BY,ORDER BY | Y | Y |
GROUP BY 修饰符 | Y | N |
| 窗口函数 | Y | Y |
| 公共表表达式 (CTE) | Y | Y |
START TRANSACTION,COMMIT,ROLLBACK | Y | Y |
EXPLAIN | Y | Y |
EXPLAIN ANALYZE | Y | Y |
| 用户自定义变量 | E | E |
BATCH [ON COLUMN] LIMIT INTEGER DELETE | Y | Y |
BATCH [ON COLUMN] LIMIT INTEGER INSERT/UPDATE/REPLACE | Y | Y |
ALTER TABLE ... COMPACT | Y | Y |
| 表级锁 (Table Lock) | E | E |
| 物化列式存储的查询结果 | Y | Y |
GET DIAGNOSTICS | Y | N |
高级 SQL 功能
数据定义语言 (DDL)
| 数据定义语言 (DDL) | 7.1.8 | 7.1.1 |
|---|---|---|
CREATE,DROP,ALTER,RENAME,TRUNCATE | Y | Y |
| 生成列 | Y | Y |
| 视图 | Y | Y |
| 序列 | Y | Y |
AUTO_INCREMENT 列 | Y | Y |
AUTO_RANDOM 列 | Y | Y |
| TTL (Time to Live) | Y | Y |
| DDL 算法断言 | Y | Y |
| 在单条语句中添加多列 | Y | Y |
| 更改列类型 | Y | Y |
| 临时表 | Y | Y |
| 并行 DDL | Y | Y |
| 添加索引加速 | Y | Y |
| 元数据锁 | Y | Y |
FLASHBACK CLUSTER | Y | Y |
| 暂停/恢复 DDL | Y | N |
| 平凯数据库加速建表 | Y | N |
| 设置 BDR Role 用于 TiCDC 双向同步时同步 DDL | Y | N |
事务
| 事务 | 7.1.8 | 7.1.1 |
|---|---|---|
| Async commit | Y | Y |
| 1PC | Y | Y |
| 大事务 (1 TiB) | Y | Y |
| 悲观事务 | Y | Y |
| 乐观事务 | Y | Y |
| 可重复读隔离(快照隔离) | Y | Y |
| 读已提交隔离 | Y | Y |
| 自动终止长时间未提交的空闲事务 | Y | N |
批量 DML 语句的执行方式 (tidb_dml_type = "bulk") | E | N |
分区
统计信息
| 统计信息 | 7.1.8 | 7.1.1 |
|---|---|---|
| CM-Sketch | 默认关闭 | 默认关闭 |
| 直方图 | Y | Y |
| 扩展统计信息 | E | E |
| 统计反馈 | N | N |
| 统计信息自动更新 | Y | Y |
| 动态裁剪 | Y | Y |
| 收集部分列的统计信息 | Y | E |
| 限制统计信息的内存使用量 | E | E |
| 随机采样约 10000 行数据来快速构建统计信息 | 已废弃 | E |
| 锁定统计信息 | Y | E |
| 轻量级统计信息初始化 | Y | E |
| 显示统计信息收集的进度 | Y | N |
安全
数据导入和导出
| 数据导入和导出 | 7.1.8 | 7.1.1 |
|---|---|---|
| 快速导入 (TiDB Lightning) | Y | Y |
快速导入 (IMPORT INTO) | Y | N |
| mydumper 逻辑导出 | 已废弃 | 已废弃 |
| Dumpling 逻辑导出 | Y | Y |
事务 LOAD DATA 4 | Y | Y |
| 数据迁移工具 | Y | Y |
| TiDB Binlog 5 | 已移除 | Y |
| Change data capture (CDC) | Y | Y |
| TiCDC 支持保存数据到存储服务 (Amazon S3/GCS/Azure Blob Storage/NFS) | Y | Y |
| TiCDC 支持在两个 TiDB 集群之间进行双向复制 | Y | Y |
| TiCDC OpenAPI v2 | Y | Y |
| DM 支持迁移 MySQL 8.0 | Y | E |
管理,可视化和工具
- 平凯数据库误将 latin1 处理为 utf8 的子集。↩
- 系统变量
tidb_allow_function_for_expression_index所列出的函数已通过表达式索引的测试,可以在生产环境中创建并使用,未来版本会持续增加。对于没有列出的函数,则不建议在生产环境中使用相应的表达式索引。详情请参考表达式索引。↩ - 平凯数据库支持的完整 SQL 列表,见语句参考。↩
- 从 v7.1.8 开始,TiDB Binlog 被移除。如需进行增量数据同步,请使用 TiCDC。如需按时间点恢复 (point-in-time recovery, PITR),请使用 PITR。在将平凯数据库集群升级到 v7.1.8 前,务必先切换至 TiCDC 和 PITR。↩
- 从 v7.1.8 开始
LOAD DATA的事务行为与 MySQL 的事务行为一致,包括事务内的LOAD DATA语句本身不再自动提交当前事务,也不会开启新事务,并且事务内的LOAD DATA语句可以被显式提交或者回滚。此外,LOAD DATA语句会受事务模式设置(乐观/悲观)影响。↩