课程名称:课程版本(201)+ 2.4 Behavior Differences Between MySQL and TiDB(TiDB 与 MySQL 的差异)
学习时长:
20 min
课程收获:
学习 TiDB 和 MySQL 中的一些差异
课程内容:
Compatibility Overview
- Protocol
- C/S protocol
- 客户端工具兼容
- 数据迁移工具
- MySQL connector
- Syntax
- DDL
- DML
- 基本的事务语句
- Semantic
- 实现部分
- 分布式环境下难以实现
- 有计划但没有完成
- 投入比较低
Difference
-
存储过程和函数
-
触发器
-
事件
-
自定义函数
-
外键约束和检查约束
-
AUTO_INCREMENT
- 无法加到以存在的列上
- 单个节点可以保证唯一性,自增性和连续性,多个节点中只能保证唯一性
-
INDEX
- 不支持全文索引,空间索引和一些索引选项
- TiDB现在支持可见与不可见索引
- 唯一索引模拟主键索引
- 主键存储和唯一索引存储一致
-
Multi-schema
- 不支持同一个SQL中修改多个schema信息,比如同时修改两列的名字
- 不支持有损类型更改,比如 char(10) - > char(5)
-
隔离级别
- TiDB 默认 REPEATABLE READ
-
Analyza Table
- MySQL中是轻量级的,而TiDB中较重
-
View
- TiDB重View 只读 不支持 增删改
-
Storage Engines
- SQL 层的 ’STORAGE = XXX‘ 是被忽视的
- 需要到启动时使用 ’–store‘来修改
-
Charsets
- 只支持 utf8, utf8mb4,ascii,latin1 and binary
-
Plan
- ‘explain’ 输出差异极大