- A+
TiDB是PingCAP开发的开源分布式HTAP数据库,数据库吧分享TiDB与MySQL区别及兼容性对比:
TiDB与MySQL兼容性对比
TiDB支持MySQL传输协议及其绝大多数的语法,当前的MySQL连接器和客户端可以使用。大概率上,用户现有的MySQL可以迁移到TiDB,无需任何代码修改。但是TiDB与MySQL兼容性还有一些差异及注意事项:
运维工具兼容性
当前TiDB服务器官方支持的版本为MySQL 5.7。大部分MySQL运维工具(如 PHPMyAdmin, Navicat, MySQL Workbench 等),以及备份恢复工具(如 mysqldump, mydumper/myloader)等都可以直接使用。
TiDB不支持的特性
存储过程与函数
视图
触发器
事件
自定义函数
外键约束
全文函数与索引
空间函数与索引
非 utf8 字符集
BINARY 之外的排序规则
增加主键
删除主键
SYS schema
MySQL 追踪优化器
XML 函数
X Protocol
Savepoints
列级权限
CREATE TABLE tblName AS SELECT stmt 语法
CREATE TEMPORARY TABLE 语法
XA 语法(TiDB 内部使用两阶段提交,但并没有通过 SQL 接口公开)
LOCK TABLE 语法(TiDB 使用 tidb_snapshot 来生成备份
CHECK TABLE 语法
CHECKSUM TABLE 语法
TiDB与MySQL有差异的特性
TiDB中自增列只保证自增且唯一,并不保证连续分配。TiDB目前采用批量分配ID的方式,所以如果在多台TiDB上同时插入数据,分配的自增ID会不连续。
Performance schema表在TiDB中返回结果为空。
TiDB的查询计划(EXPLAIN/EXPLAIN FOR)输出格式与MySQL差别较大,同时EXPLAIN FOR的输出内容与权限设置与 MySQL不一致。
TiDB支持常用的MySQL内建函数,但是不是所有的函数都已经支持。
在TiDB中,运行的DDL操作不会影响对表的读取或写入。DDL变更有限制,参考:TiDB DDL变更与MySQL对比区别及限制
ANALYZE TABLE语句在TiDB和MySQL中表现不同。在MySQL/InnoDB中,它是一个轻量级语句,执行过程较短;而在TiDB中,它会完全重构表的统计数据,语句执行过程较长。
出于兼容性原因,TiDB 支持使用备用存储引擎创建表的语法。元数据命令将表描述为 InnoDB 存储引擎。从架构上讲,TiDB 确实支持类似MySQL的存储引擎抽象,在启动TiDB(通常是 tikv)时 --store 选项指定的引擎中创建用户表。
TiDB支持MySQL 5.7中绝大多数的SQL模式,以下几种模式除外:
TiDB不支持兼容模式(例如 ORACLE 和 POSTGRESQL)。MySQL 5.7已弃用兼容模式,MySQL 8.0已移除兼容模式。
TiDB中的ONLY_FULL_GROUP_BY与MySQL 5.7相比有细微的语义差别,此问题日后将予以解决。
NO_DIR_IN_CREATE和NO_ENGINE_SUBSTITUTION这两种SQL模式用于解决兼容问题,但并不适用于TiDB。
TiDB和MySQL默认设置有区别,主要表现在默认字符集、默认排序规则、默认SQL mode、lower_case_table_names的默认值及explicit_defaults_for_timestamp的默认值。参考:TiDB和MySQL默认设置区别对比
时区:MySQL默认使用本地时区,依赖于系统内置的当前的时区规则(例如什么时候开始夏令时等)进行计算;且在未导入时区表数据的情况下不能通过时区名称来指定时区。TiDB不需要导入时区表数据也能使用所有时区名称,采用系统当前安装的所有时区规则进行计算(一般为tzdata包),且无法通过导入时区表数据的形式修改计算规则。
零月和零日:目前TiDB尚不能完整支持月为0或日为0(但年不为0)的日期。在非严格模式下,此类日期时间能被正常插入,但对于特定类型SQL可能出现无法读出来的情况。
以上转自PingCAP官方文档,详细请以PingCAP官网为准。
2023腾讯云服务器超便宜,这个价格太可以了,抓紧上车!
- 2核2G3M服务器30元/3个月:点此直达
- 阿里云优惠在阿里云百科:aliyunbaike.com/go/youhui
- 2核2G3M服务器95元一年:点此直达
- 2核2G4M服务器112元/1年:点此直达
- 2核2G4M服务器396元/1年:点此直达
- 2核4G5M服务器168元/3年:点此直达
- 2核4G5M服务器628元/3年:点此直达
- 4核8G12M服务器446元/1年 518元15个月:点此直达
- 8核16G18M服务器1668元/15个月
- 16核32G28M服务器3468元/15个月
注意:以上特价轻量服务器限制条件为“产品首单特惠”,如果你的腾讯云账号已经是老用户,建议重新注册一个腾讯云账号,如果你是新用户符合条件,那么无脑入,这个CPU内存带宽配置,价格确实便宜,值得买!
注意:购买阿里云数据库,先领取阿里云2000元代金券,符合条件的订单可以使用代金券抵扣。