【TiDB 4.0 PCTA 学习笔记】 2.4 Behavior Differences Between MySQL and TiDB(TiDB 与 MySQL 的差异)@1班 李元月

课程名称:

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 中的输出格式有所区别

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

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