高级DBA取得TIDB与MYSQL兼容性测试报告

本文对比了TiDB与MySQL在不同场景下的性能表现,包括简单SQL查询、复杂关联查询及事务处理等,并分析了各自的优势与局限性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.建表插入导入兼容性
测试场景:
将项目的生产数据库备份导入到TIDB测试环境。
测试结果:
有少量建表语句不兼容,建表语句需要调整,对于某些时间字段,例如
updateTime timestamp NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’
不兼容。
导入必须拆分SQL,提交的大小有限制,TIDB事务提交最大100M.导入必须要用专业工具拆分式导入,
导入基本成功,导入的时间跟MYSQL导入时间大体一致3到4个小时。传统的MYSQL命令导入跟Navicat for MySQL工具导入,遇到大表,都会失败。
用传统方法倒入TIDB事务提交的限制一定会遇到
我们此次用Mydumper导入,数据导入到TIDB基本成功。Mydumper是把SQL分割成100M以下的多个文件进行顺序倒入!
2.业务程序兼容性

在这里插入图片描述
3.SQL性能测试
测试场景
MySQL 8.0 TIDB4.2
16核心32G内存虚拟机centos7.3
1个实例 16核心32G内存虚拟机centos7.3
1个实例

1.简单SQL
结论:简单SQL执行速度差不多,mysql略快

2.复杂关联查询
案例1:简单数据关联查询 MYSQL快
案例2: 大数据关联表查询条件简单 TIDB快
案例3: 大数据关联查询复杂条件 MYSQL快
案例4: 关联子查询,级联更新子查询 TIDB支持非常不好

3.事务对比
在这里插入图片描述
MYSQL悲观锁,TIDB乐观锁
4.测试初步结论:
TiDB较适合简单查询的OLTP系统:
得益于TiDB的分布式架构,并发上比mysql更优,在大表关联查询上有一定优势,但是在复杂的子查询语句表现不尽人意。
TIDB对于级联更新语句支持非常不好。
TIDB特别适合电商项目数据量订单庞大,统计不复杂的业务场景。
复杂统计分析的项目非常不合适,存储过程,触发器,自定义函数,完全都不能用。
本测试只代表个人观点,真实的使用场景需要实际中验证。

笔者简介
国内某一线知名软件公司企业认证在职员工:任JAVA高级研发工程师,大数据领域专家,数据库领域专家兼任高级DBA!10年软件开发经验!现任国内某大型软件公司大数据研发工程师、MySQL数据库DBA,软件架构师。直接参与设计国家级亿级别大数据项目!并维护真实企业级生产数据库300余个!紧急处理数据库生产事故上百起,挽回数据丢失所造成的灾难损失不计其数!并为某国家级大数据系统的技术方案(国家知识产权局颁布)专利权的第一专利发明人!

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术很渣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值