【TiDB 4.0 PCTA 学习笔记】- 2.4 TiDB 与 MySQL 的差异@1班 - 江坤

课程名称:课程版本(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’ 输出差异极大

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

与 MySQL 兼容性对比 | PingCAP Docs