关于翼欧教育测试对比的几个问题请教

块引用
翼欧教育数据库运维负责人刘江和大家分享的《Classin携手OceanBase,突破MySQL读写与容量瓶颈》中提到:在实际环境中,我们发现 OceanBase 在性能方面优势明显:在线 DDL 用时相比其他数据库 快 10-1500倍,数据清洗时间快 2.74 倍,数据传输性能快 2.6 倍,接口响应延迟时间仅为其他数据库的一半。OCP 以及 OMS 等周边工具帮助我们更好的使用OceanBase。

上述对比文章中对比测试有理有据,有图有真相,是篇不错的对比,但仍有以下疑问,另外我也在自己的环境做了几个测试, 我的环境如下 :5.2.3版本,5台主机所有组件混合部署(40c,256G 该环境每主机上还有1套oracle),分别绑定至不同的numa node,每个node 20c ,5个tikv 节点,配置48G block cache,12块SAS盘做raid10。

1、在慢日志的对比中提到 ‘这是由于TiDB优化器不稳定,出现索引走错的情况,而 OceanBase 不支持倒序索引,其查询不走索引’ 这里不太明白 是ob也是走了全表扫描吗? 另外从截图上看tidb 的按SQL执行时间做了排序,tidb慢日志中的几个执行十几分钟的SQL 看上去并不是一个表关联的SQL,不知道相同的SQl从执行时间、执行计划上、表数据量和ob的对比是什么样?

下面是我的环境的count查询 ,268亿的索引全扫描 执行时间(本想explain analyze接个执行计划图因为5.2.3版本分区静态裁剪执行计划太长只截了后面,并重新执行了一次 ,第一次执行因为物理读较多用时14分15秒,第二次执行因为有缓存3.6秒)

2、 ddl对比 只包含了加锁索引的ddl ,其他类型的ddl是否有对比? 从建索引的用时 和 实际使用情况看 感觉有些数据对比比较夸张,不知道测试时是个什么样的场景,是否做过调优或问题分析? 在tidb 6.5版 concurrrent ddl和快速加索引GA前,tidb的加索引的速度是比较慢而且串行,但还不至于拉胯到90万条数据建索引要跑7482秒,tidb有些参数是可调的用于加速索引创建速度。

下面 加索引(2个varchar字段创建组合索引)的时间对比:
jobid: 3422 , 第一次执行 ddl使用默认参数 tidb_ddl_reorg_worker_cnt=4 tidb_ddl_reorg_batch_size=256,97312212条数据用时3193秒,平均30476/秒。

jobid: 3424 第二次创建与第一次相同列上的索引,调整参数 tidb_ddl_reorg_worker_cnt=16 tidb_ddl_reorg_batch_size=1024,97445097条数据(12个小时增长33万数据)用时1218,平均80004/秒。

jobid: 3425, 第三次使用另一个表和调整后的参数,58590002条数据用时981秒,平均59724/秒(物理IO对速度有影响)

调整参数后资源使用情况:

声明下: tidb是存算分离架构,本身的架构导致其读写路径比较长,在较多场景延迟和性能不如ob ,根据平时的使用经验和前面测试看,虽然性能差一些,但还不至于 差到百十来万的表加索引要7000多秒,因此此贴只是对测试数据有些疑问 。

1 个赞

tidb6.5加索引性能是提升不少,我自己电脑上跑了个测试,效率还是比较高,但是实际业务上因为表和字段可能比较大需要的时间可能更长,这里做下参考:

给6亿的数据加3个字段,默认参数下是13分钟大约是780秒,效率还是不慢的。

看到一个官方做的的新版本测试对比