PCTA-2.4 TiDB与MySQL的差异-2班-王燕辉

课程名称:课程版本(101/201/301)+ 课程名称

学习时长:1H

课程收获:

了解MySQL 和TiDB 之间的不同之处。

课程内容:

兼容性

协议

MySQL 5.7 client/server 协议,100…% 兼容,mysql 生态的工具都可以在tidb上使用。

  1. client phpadmin ,navicat,MySQL workbench
  2. 数据库迁移工具 mysqldump/mydumper,myloader
  3. 驱动

语法

适配5.7 /8.0 的绝大多数语法。
DDL/DML/基本的事务/锁语句/prepared 语句/管理语句

语义兼容

部分不兼容 ,投入产出比比较低,在分布式环境难以实现,已经设计但是还没投入开发。

区别的地方 自增id/存储引擎

不支持

触发器,存储过程、自定义函数,定时事件,外键

差异

自增主键 不能为已经存在的字段添加自增主键
如果是单节点 自增则递增且有序,如果是多节点,自增,但是无顺序。

index 和 主键

  1. 不支持 全文索引/空间索引/可见索引/不可见索引
  2. 主键 数值类型的索引 和mysql一样 ,以IOT 方式存储。
    字符串格式的则和唯一键类似
  3. DDL 不支持一次操作多个字段,也不支持缩减字段属性,比如减小字段长度,减小数值类型的大小
  4. 事务隔离级别
    默认为RR 模式,
    rc模式只能在悲观事务下实现。
  5. analyze table 在TiDB 会重新收集统计信息。
  6. 不支持view 的增删改
  7. tidb会忽略 语法 engine=innodb
  8. 字符集仅仅支持 utf8,utf8mb4,ascii,latin1 和binary
  9. explain的输出格式和mysql完全不一样。

学习过程中遇到的问题或延伸思考:

  • 问题 1:
  • 问题 2:
  • 延伸思考 1:
  • 延伸思考 2:

学习过程中参考的其他资料