黄东旭解析 TiDB 的核心优势
565
2024-02-28
3台ARM服务器,同时部署TiDB和***。
TiDB: v7.5.0社区版,kv cache 32G ,CPU 48核(tidb+tikv+pd,numa),普通ssd。
***: 4.2.1.1社区版,租户内存128G,48核,普通ssd。
以*** 4.2.1官网文档为基准测试内容,验证TiDB和***的online ddl能力。Sysbench初始化一张200万数据表,根据测试内容不同设置为不同分区,使用12个线程进行oltp_read_write等DML操作的同时执行DDL,观察DDL执行与TPS情况。
*** online ddl 说明:
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000252800
CREATE TABLE `sbtest1` (
`id` bigint(20) NOT NULL ,
`k` bigint(20) NOT NULL DEFAULT 0,
`c` varchar(120) NOT NULL DEFAULT ,
`pad` varchar(60) ,
PRIMARY KEY (`id`),
KEY `k_1` (`k`)
) DEFAULT CHARSET=utf8
partition by range(id)
( partition p1 values less than(1000001),partition p2 values less than(2000001),
partition p3 values less than(3000001),partition pmax values less than(maxvalue));
1、 对tidb、oceanbase支持的online ddl进行验证对比。
2、 验证oceanbase 官网的offline ddl在tidb能否online。
本次测试结果汇总如下,环境、版本差异可能会有不同结果,仅供参考。从测试结果看TiDB支持的online ddl操作类型更多,实际使用也更丝滑,对于仅数据字典修改的ddl操作ob的性能要优于tidb,tidb的执行时间更加稳定(可能和环境有关系)。OB在自增列和stored生成列上支持的操作比tidb多,对应分区表tidb支持更多灵活的ddl操作。
OB定义
操作
TiDB
***
备注
online增加索引
online,TPS降低约38%,15.02秒
online,TPS降低67%,29.5秒
删除索引
online,TPS正常,0.52秒
online,TPS正常,0.81秒
重命名索引
online,TPS正常,0.51秒
online,TPS正常,0.12秒
混合索引操作
online,TPS降低约40%,15.02秒
online,TPS正常,22.9秒
末尾加列
online,TPS正常,0.51秒
online,TPS正常,2.96秒
添加 VIRTUAL 列
online,添加后TPS降低约25%,0.51秒
online,TPS正常,0.15秒
删除 VIRTUAL 列
online,删除后TPS回升约25%,0.51秒
异常,TPS掉0,67.39秒
修改列为 NOT NULL
online,TPS正常,1.29秒
online,TPS正常,0.125秒
修改列为 NULL
online,TPS正常,0.51秒
online,TPS正常,0.2秒
设列默认值
online,TPS正常,0.51秒
online,TPS正常,0.14秒
删除列默认值
online,TPS正常,0.52秒
online,TPS正常,0.18秒
修改自增列值
online,TPS正常,0.51秒
online,TPS正常,0.19秒
重命名列
online,TPS正常,0.52秒
online,TPS正常,0.3秒
增加列类型长度或精度
online,TPS正常,0.51秒
异常,TPS掉0,55.8秒
混合列操作
online,TPS正常,2.29秒
异常,TPS掉0,54.7秒
有Offline操作则转为offline
增加外键、CHECK/NOT NULL 约束
online,TPS正常,0.0秒
online,TPS正常,1.25秒
重命名表
修改行格式
因架构差异,未测试
修改块大小
因架构差异,未测试修改压缩算法
因架构差异,未测试优化表空间
因架构差异,未测试添加分区
online,TPS正常,0.51秒
online,TPS正常,0.17秒
offline中间加列(BEFORE/AFTER/FIRST)
online,TPS正常,0.51秒
offline,TPS掉0,28秒
重排列(BEFORE/AFTER/FIRST)
online,TPS正常,0.52秒
offline,TPS掉0,56.7秒
添加自增列
不支持添加自增列,支持删除自增列属性
offline,TPS掉0,81秒
修改为自增列
不支持修改为自增列
online,TPS正常,14秒
修改列类型
部分online(字段类型限制),TPS正常,0.51秒
offline,TPS掉0,150秒
修改列为主键
聚簇表不支持修改,非聚簇表online
offline,TPS掉0,31.6秒
ob社区版修改主键为drop\add方式。Tidb不能执行,drop/add分开执行
添加/删除 STORED 生成列
不支持添加store生成列,支持online删除store生成列,0.52秒
offline,TPS掉0,87秒(加)、50秒(删)
删除列
online,TPS正常,0.52秒
offline,TPS掉0,58秒
混合列操作
online,TPS正常,2.29秒
异常,TPS掉0,54.7秒
添加/删除主键
聚簇表不支持,非聚簇表online
offline,TPS掉0,193秒(加)、34秒(删)
TRUNCATE 表
online,TPS正常,0.52秒
online,TPS掉4.3秒
转换字符集
online,TPS正常,0.51秒
online,TPS正常,0.11秒
utf8转utf8mb4
删除表
修改分区规则
online,TPS降低约25%,162秒
offline,TPS掉0,30.2秒
tidb支持分区交换、转换、重组等更多操作
删除分区
online,TPS正常,0.51秒
online,TPS正常,0.86秒
TRUNCATE 分区
online,TPS正常,0.51秒
online,TPS正常,0.47秒
--------------------------
具体测试详情: https://asktug.com/t/topic/1019469 查看pdf文档
-------------------------
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。