随着数字化经济建设的推进,首要问题面临国产数据库的选型,如何选?需要综合考虑业务需求、技术兼容性、性能、安全可靠性、扩展灵活性、成本效益、技术支持与培训以及参考案例与口碑等多个因素。
通过综合评估,选择最适合的数据库产品,以满足业务需求并推动业务发展。在笔者查阅资料过程中,更多的只是各国产数据库的排名、技术架构,真正实际环境的分析对比相对较少,面对动辄十几万、几十万的数据库采购费用,不能简单的凭排名来决定。
因此我们选取典型的数据库厂商:达梦、Oracle、Mysql,同时设计了插入性能测试、查询性能测试多个维度及指标,尽可能挖掘每个数据库产品的特性,我们也在不断改进测试环境与方式。
01
国产信创达梦数据库测试场景
第一部分:暴力测试主要测试了以下几个场景:
1.正常关闭主库实例;2.直接杀掉主库实例;3.关闭主库守护进程;4.关闭备库实例;5.直接杀掉备库实例;6.关闭备库守护进程;7.down主库心跳网卡;8.down备库心跳网卡(监控器在备库机器上);9.down备库心跳网卡(监控器在第三天机器上);10.down主库公共网卡;11.down备库公共网卡;12.主库服务器长时间宕机;13.备库服务器长时间宕机。
第二部分:测试达梦、Oracle、MySQL数据库性能对比
主要检查测试以下几个场景:
1:大数据新增模拟跑批业务,大事务,单条新增几千万数据量。2:单条多次新增模拟小事物,单条小数据量,多次执行。3:大数据汇总模拟大数据查询4:大数据汇总排序模拟大数据查询5:复杂SQL模拟复杂查询
02
国产信创达梦数据库暴力测试
在做暴力测试之前,先简单看下达梦守护集群:
和Oracle DG架构类似
主库增、删、改等操作产生的 Redo 日志通过MAL系统传输到备库,备库接收并重演 Redo 日志,从而实现备库与主库的数据同步。
提供自动切换和手动切换两种守护模式,满足用户不同需求。
其中,自动切换模式需要提前配置并启用监控器,
该模式下,主库出现故障时,会自动将备库切换为主库对外继续提供数据库服务。
主备推荐架构:
两台DB服务器+1台或2台Monitor服务器
其中,monitor占用很少的资源
占用磁盘空间2.1GB,内存15263*0.003=45.789MB,CPU平时使用率为0,数据同步时0.7%。
下面看一下暴力测试结果
03
国产信创达梦数据库性能测试
数据库压力测试-大数据新增(达梦)
测试场景:大数据新增
环境说明:kylin v10、内存 7200MB、CPU 4C
创建单列数值型测试表t1
单机:一次性插入8388万测试数据(2250MB),耗时42秒,速度 54MB/s
主备:一次性插入8388万测试数据(2250MB),耗时78秒,速度 29MB/s
达梦主库dmserver进程:
CPU使用率从4.4%增长到8.0%;内存使用率从43.6%增长到45.1%
达梦主库dmwatcher进程:
CPU使用率一直0.0%;内存使用率一直0.1%;
达梦备库库dmserver进程:
CPU使用率从2.3%增长到5.3%;内存使用率从41.2%增长到44.3%
达梦备库dmwatcher进程:
CPU使用率一直0.0%;内存使用率一直0.3%;
测试场景:大数据新增
环境说明:kylin v10、内存 7200MB、CPU 4C
创建单列数值型测试表t1
单机:一次性插入8388万测试数据(2250MB),耗时360秒,速度 6.25MB/s
主备:一次性插入8388万测试数据(2250MB),耗时367秒,速度 6.13MB/s
mysqld进程:
单机:CPU使用率一直18.8%;内存使用率从35.5%增长到50.1%;
主从:CPU使用率一直18.9%;内存使用率从8.0%增长到10.4%;
测试场景:大数据新增
环境说明:kylin v10、内存 7200MB、CPU 4C
创建单列数值型测试表t1
单机:一次性插入8388万测试数据(1024MB),耗时120秒,速度 8.5MB/s
Oracle进程:
内存使用率从18.7%增长到23.9%;CPU使用率从7.0%增长到11.0%;
数据库压力测试-小数据新增(达梦、Oracle、MySQL)
测试场景:单条插入,循环插入990万次
环境说明:kylin v10、内存 7200MB、CPU 4C
测试结果:
达梦数据库:主备耗时1132秒;单机:546秒,1831行/秒;主备:1132秒,883行/秒。
Oracle数据库:单机:67秒,14924行/秒。
MySQL数据库;主备:38分钟39秒(2319秒)hen431行/秒。
数据库压力测试-大数据汇总查询
数据库压力测试-大数据汇总排序查询
性能测试结果
总结:在以上几种测试场景中:
大数据新增、大数据汇总场景,达梦数据库性能最优。
小数据新增、大数据汇总排序,Oracle数据库性能最优。