【TiDB 4.0 PCTA 学习笔记】- 2.4 Behavior Differences Between MySQL and TiDB(TiDB 与 MySQL 的差异)@ 1班+杨雷雨

课程名称:课程版本(101)+ 2.4 Behavior Differences Between MySQL and TiDB(TiDB 与 MySQL 的差异)

学习时长:15min

课程收获:了解 TiDB 和 MySQL 在语法、功能和行为上的主要差异

课程内容:

一、兼容性

1、协议兼容

A、Client/Server 协议
B、MySQL生态工具绝大多数可以直接用在TiDB上
客户端工具
PHPMyAdmin
Navicat
MySQL Workbench
数据迁移工具
Mysqldump
Mydumper/myloader
Connector
MySQL connector

2、语法兼容(MySQL5.7/8.0)

A、DDL
B、DML
C、事务/锁
D、管理语句
E、管理报表

3、语义兼容

A、实现部分
B、分布式环境下难以实现
C、有计划但没有完成
D、投入比较低

二、区别

A、存储过程和函数
B、触发器
C、事件
D、自定义函数
E、外键约束和检查约束

三、差异特性

1、AUTO_INCREMENT

A、TiDB无法加到已经存在的列上
B、单个TiDB节点可以保证唯一性,自增性和连续性,多个节点中只能保证唯一性

2、INDEX

A、不支持全文索引,空间索引和一些索引选项
B、TiDB4.0支持不可见索引

3、主键

A、主键存储和唯一索引存储一致

4、Multi-schema

A、指同一个SQL中修改多个schema信息
B、不支持同一个SQL中修改多个schema信息,比如同时修改两列的类型

5、不支持有损类型更改

比如 char(10) - > char(5)

6、隔离级别

A、TiDB 默认 REPEATABLE READ
B、READ COMMITTED只能在悲观事务

7、Analyze Table

MySQL中是轻量级的,而TiDB中较重(重构统计信息)

8、View

TiDB中View 只读 不支持 增删改等写入操作

9、存储引擎

A、SQL 层的 ’STORAGE = XXX‘ 是被忽视的
B、需要到启动时使用 ’–store‘来修改

10、Charsets

只支持 utf8, utf8mb4,ascii,latin1 and binary

11、Plan

‘explain’ 输出差异极大

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