课程名称:
201 2.4 Behavior Differences Between MySQL and TiDB(TiDB 与 MySQL 的差异)
学习时长:
20min
课程收获:
了解 TiDB 与 MySQL 的差异
课程内容:
1. 兼容性概览
1. 协议兼容
- MySQL 5.7 client/server 协议 100% 兼容
- MySQL 生态工具可以直接在 TiDB 上使用
2. 语法兼容
-
适配 5.7/8.0 大部分语法
- DDL
- DML
- 基本的事务/锁语句
- prepared 语句
- 管理语句
3. 语义兼容
- 部分不兼容
- 部分与 MySQL 有区别
2. TiDB 与 MySQL 不同的主要特性
TiDB 不支持的特性
- 存储过程
- 自定义函数
- 触发器
- 定时事件
- 外键
TiDB 与 MySQL 有差异的特性
-
AUTO_INCREMENT
- 单个 TiDB 实例上可以做到唯一、递增且连续
- 多个 TiDB 实例上只能做到唯一,无法做到递增或连续
-
INDEX
- 不支持全文索引、空间索引、可见索引和不可见索引
- 当为数值类型的主键,通过唯一索引模拟
-
Multi-schema change
- 不支持一次修改多个列
- 不支持有损精度的变更
-
Isolation Level
- 默认为 RR
- RC 只能在悲观事务模型下实现
-
Analyze Table 在 TiDB 会重新收集统计信息
-
Views 在 TiDB 中不支持 INSERT/UPDATE/DELETE
-
Storage engine 在 TiDB 被忽略掉
-
Charsets 仅支持 utf8, utf8mb4, ascii, latin1 和 binary
-
Execution Plan 在 TiDB 中的输出格式有所区别
学习过程中遇到的问题或延伸思考:
无
学习过程中参考的其他资料
无