添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

与 MySQL 兼容性对比

TiDB 高度兼容 MySQL 协议,以及 MySQL 5.7 和 MySQL 8.0 常用的功能及语法。MySQL 生态中的系统工具(PHPMyAdmin、Navicat、MySQL Workbench、DBeaver 和 其他工具 )、客户端等均适用于 TiDB。

但 TiDB 尚未支持一些 MySQL 功能,可能的原因如下:

  • 有更好的解决方案,例如 JSON 取代 XML 函数。
  • 目前对这些功能的需求度不高,例如存储过程和函数。
  • 一些功能在分布式系统上的实现难度较大。

除此以外,TiDB 不支持 MySQL 复制协议,但提供了专用工具用于与 MySQL 复制数据:

  • 从 MySQL 复制: TiDB Data Migration (DM) 是将 MySQL/MariaDB 数据迁移到 TiDB 的工具,可用于增量数据的复制。
  • 向 MySQL 复制: TiCDC 是一款通过拉取 TiKV 变更日志实现的 TiDB 增量数据同步工具,可通过 MySQL sink 将 TiDB 增量数据复制到 MySQL。

不支持的功能特性

  • 存储过程与函数
  • 触发器
  • 事件
  • 自定义函数
  • 全文语法与索引 #1793
  • 空间类型的函数(即 GIS / GEOMETRY )、数据类型和索引 #6347
  • ascii latin1 binary utf8 utf8mb4 gbk 的字符集
  • MySQL 追踪优化器
  • XML 函数
  • X-Protocol #1109
  • 列级权限 #9766
  • XA 语法(TiDB 内部使用两阶段提交,但并没有通过 SQL 接口公开)
  • CREATE TABLE tblName AS SELECT stmt 语法 #4754
  • CHECK TABLE 语法 #4673
  • CHECKSUM TABLE 语法 #1895
  • REPAIR TABLE 语法
  • OPTIMIZE TABLE 语法
  • HANDLER 语句
  • CREATE TABLESPACE 语句
  • "Session Tracker: 将 GTID 上下文信息添加到 OK 包中"
  • 降序索引 #2519
  • SKIP LOCKED 语法 #18207
  • 横向派生表 #40328
  • JOIN 的 ON 子句的子查询 #11414

与 MySQL 有差异的特性详细说明

自增 ID

  • TiDB 的自增列既能保证唯一,也能保证在单个 TiDB server 中自增,使用 AUTO_INCREMENT 兼容 MySQL 的自增列模式 能保证多个 TiDB server 中自增 ID,但不保证自动分配的值的连续性。建议避免将缺省值和自定义值混用,以免出现 Duplicated Error 的错误。

  • TiDB 可通过 tidb_allow_remove_auto_inc 系统变量开启或者关闭允许移除列的 AUTO_INCREMENT 属性。删除列属性的语法是: ALTER TABLE MODIFY ALTER TABLE CHANGE

  • TiDB 不支持添加列的 AUTO_INCREMENT 属性,移除该属性后不可恢复。

  • 对于 v6.6.0 及更早的 TiDB 版本,TiDB 的自增列行为与 MySQL InnoDB 保持一致,要求自增列必须为主键或者索引前缀。从 v7.0.0 开始,TiDB 移除了该限制,允许用户更灵活地定义表的主键。关于此更改的详细信息,请参阅 #40580

自增 ID 详情可参阅 AUTO_INCREMENT

mysql> CREATE TABLE t(id INT UNIQUE KEY AUTO_INCREMENT); Query OK, 0 rows affected (0.05 sec) mysql> INSERT INTO t VALUES(); Query OK, 1 rows affected (0.00 sec) mysql> INSERT INTO t VALUES(); Query OK, 1 rows affected (0.00 sec) mysql> INSERT INTO t VALUES(); Query OK, 1 rows affected (0.00 sec) mysql> SELECT _tidb_rowid, id FROM t; +-------------+------+ | _tidb_rowid | id | +-------------+------+