课程名称:课程版本(101/201/301)+ 课程名称
学习时长:1H
课程收获:
了解MySQL 和TiDB 之间的不同之处。
课程内容:
兼容性
协议
MySQL 5.7 client/server 协议,100…% 兼容,mysql 生态的工具都可以在tidb上使用。
- client phpadmin ,navicat,MySQL workbench
- 数据库迁移工具 mysqldump/mydumper,myloader
- 驱动
语法
适配5.7 /8.0 的绝大多数语法。
DDL/DML/基本的事务/锁语句/prepared 语句/管理语句
语义兼容
部分不兼容 ,投入产出比比较低,在分布式环境难以实现,已经设计但是还没投入开发。
区别的地方 自增id/存储引擎
不支持
触发器,存储过程、自定义函数,定时事件,外键
差异
自增主键 不能为已经存在的字段添加自增主键
如果是单节点 自增则递增且有序,如果是多节点,自增,但是无顺序。
index 和 主键
- 不支持 全文索引/空间索引/可见索引/不可见索引
- 主键 数值类型的索引 和mysql一样 ,以IOT 方式存储。
字符串格式的则和唯一键类似 - DDL 不支持一次操作多个字段,也不支持缩减字段属性,比如减小字段长度,减小数值类型的大小
- 事务隔离级别
默认为RR 模式,
rc模式只能在悲观事务下实现。 - analyze table 在TiDB 会重新收集统计信息。
- 不支持view 的增删改
- tidb会忽略 语法 engine=innodb
- 字符集仅仅支持 utf8,utf8mb4,ascii,latin1 和binary
- explain的输出格式和mysql完全不一样。
学习过程中遇到的问题或延伸思考:
- 问题 1:
- 问题 2:
- 延伸思考 1:
- 延伸思考 2: