TiDB v7.5.0与Oceanbase v4.2.1.1在线DDL对比验证

网友投稿 509 2024-02-28



1          测试环境

3台ARM服务器,同时部署TiDB和***。

TiDB v7.5.0与*** v4.2.1.1在线DDL对比验证

TiDB: v7.5.0社区版,kv cache 32G ,CPU 48核(tidb+tikv+pd,numa),普通ssd。

***: 4.2.1.1社区版,租户内存128G,48核,普通ssd。

2          测试内容

以*** 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));

3          测试目的

1、 对tidb、oceanbase支持的online ddl进行验证对比。

2、 验证oceanbase 官网的offline ddl在tidb能否online。

4          测试结果

本次测试结果汇总如下,环境、版本差异可能会有不同结果,仅供参考。从测试结果看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小时内删除侵权内容。

上一篇:工业实时数据库在制造业中的应用如何实现价值创造?分析实时数据库的关键技术
下一篇:数据库管理工具如何提高工作效率?探索管理工具的功能与选择指南
相关文章