课程名称:课程版本(101/201/301)+ 课程名称
学习时长:
10
课程收获:
Tidb和mysql的差异,主要了解了Tidb中不支持的功能。
课程内容:
协议兼容
- 客户端/服务端 协议兼容
- Mysql生态工具可以用于Tidb
- 客户工具 PHPMyadmin,Navicat,Mysql Workbench
- 数据迁移工具 mysqldump, mydumper/myloader
- Mysql connector
语法兼容
- Mysql 5.7/8.0中的大部分语法都兼容
- DDL
- DML
- 基本事物语句、锁
- prepared 语句
- 管理语句
语义兼容
-
极少数不兼容,因为
- 在分布式数据库中,开发难度很大
- 在设计阶段
- 开发回报远低于投入
-
极少数特性和mysql不同
- auto_incremnet
- storage engine
不支持特性
- 存储过程,函数
- 触发器
- event
- 自定义函数
- 外键
和mysql的主要差异
- auto_increment
- 不能对已存在的列增加
- 自增列语义不同
- 单tidb集群:
- 可以保证唯一性,自增性和连续性
- 多实例tidb集群:
- 不能保证自增和连续
- 不支持索引
- 全文索引
- 空间索引
- 某些索引选项(除了visible/invisible)
- 主键
- int主键:存储为聚簇索引,和mysql一致
- 其他主键:作为唯一索引存储
- 多表ddl语句
- 有损列ddl
- char(10) -> char(5)
- 隔离级别
- RR
- RC
- 只能在悲观模式下设置
- analyze table
- views
- 不支持增删改
- 存储引擎
- 字符集
- 只支持 utf8, utf8mb4, ascii, latin1 和 binary
- 执行计划