上周5同事转了一个帖子给我,说某公众号写了一篇MogDB vs KingBase的文章测评。该博主使用sysbench测了一些场景,其中大部分场景Mogdb相比KingBase而言表现都要差一些,只有一个场景比kingbase高很多。
老实说第一眼看到这个文章,我是充满了疑惑的,毕竟对方测试服务器配置还是非常高的,kunpeng920(128c+500G SSD。按理说无论是MogDB还是KingBase测出来的数据都应该要更高很多才对。不过该文章中也提到了,没有进行什么优化配置。
那么为什么一些查询场景,看起来KingBase要高很多倍呢?这个博主很诧异,不明所以。我这里告诉大家,本质上是因为KingBase默认会启用并行。
另外对于该博主反馈的为什么无论是MogDB 还是Kingbase 经过多次测试之后,后面反而数据会降低呢。这个其实很好理解,主要是PG系列数据库都面临一个数据膨胀的问题,需要定期进行vacuum操作,否则表会膨胀的比较厉害。对于这一点,大家可以期待一下后续的Ustore存储引擎,采用了类似Oracle Undo的设计机制,几乎能够完美解决表膨胀的问题。
对于MogDB 而言,这里我补充一句,如果如果安装 MogDB 的时候,使用ptk进行自动化安装部署,那么ptk会进行一些常规参数的优化调整,基本上可以满足大部分生产系统运行。
我找不到这么高配的测试机,仅仅用我们内部的研发环境测一下(16c/64G SATA ssd),以供大家参考。
[root@roger ~]# cat /proc/cpuinfo | grep 'model name' |uniq
model name : Intel(R) Xeon(R) Gold 5318Y CPU @ 2.10GHz
[root@roger ~]#
[root@roger ~]# cat /proc/cpuinfo | grep "physical id" | uniq | wc -l
16
[root@roger ~]# cat /proc/meminfo |head -5
MemTotal: 64651288 kB
MemFree: 11864704 kB
MemAvailable: 56137824 kB
Buffers: 1768 kB
Cached: 50118012 kB
[root@roger ~]#
首先我从该博主的文章中提取了MogDB的部分数据,80并发场景下的TPS:
oltp_point_select : 96251
oltp_read_only: 6164
select_random_points: 64906
select_random_ranges: 34030
oltp_insert: 66850
oltp_write_only: 12138
oltp_delete: 53598
oltp_update_non_index: 58508
oltp_update_index: 55031
oltp_read_write: 2689
然后我这里贴一下我的实测数据。大家可以清楚都看到,有几个场景的数据我这里比该博主的测试数据要高(注意,我这里测试环境配置要低的多)。
点查场景(point_select) 我这里MogDB 507要比该博主的测试高。
随机点查(random_points ) 我这里MogDB 507要比该博主的测试高。
随机范围(random_ranges) 我这里MogDB 507要比该博主的测试高。
纯写场景(write_only) 我这里MogDB 507要比该博主的测试高。
删除场景(delte) 我这里MogDB 507要比该博主的测试高。
混合读写场景(read_write). 我这里MogDB 507要比该博主的测试高。
oltp_point_select : 107679.39
oltp_read_only: 5512.35
select_random_points: 77225
select_random_ranges: 34232
oltp_insert: 33988.50
oltp_write_only: 12476.46
oltp_delete: 91002.39
oltp_update_non_index: 44770.62
oltp_update_index: 39473.81
oltp_read_write: 3183.41
实际上就是当前的环境我也测了Kingbase情况,跟MogDB相比,又高又低。这里文件就贴出来了。否则又有网友要说我是故意贬低友商了。
我想这个比较低配的测试环境数据,应该足够了吧,对于大部分业务系统来讲。
最后防止有人说我测试数据作假,我把下面把sysbench的测试全部截图附上。
select_random_points:
select_random_ranges:
oltp_read_only:
oltp_point_select:
oltp_read_write:
oltp_write_only:
oltp_insert:
oltp_update_index:
oltp_update_non_index:
oltp_delete:
本文由 mdnice 多平台发布