性能测试丨GreatSQL TPC-H 性能测试报告正式发布!


万里数据库
万里数据库 2024-03-21 14:37:37 50095
分类专栏: 资讯 标签: 国产数据库
正式发布

GreatSQL TPC-H 性能测试报告正式发布!

完整性能测试报告请点击文末【阅读原文】

1、测试背景概述

本次测试针对GreatSQL开源数据库基于标准 TPC-H 场景的测试。

TPC-H(商业智能计算测试)是美国交易处理效能委员会(TPC,TransactionProcessing Performance Council)组织制定的用来模拟决策支持类应用的一个测试集。目前,学术界和工业界普遍采用 TPC-H 来评价决策支持技术方面应用的性能。这种商业测试可以全方位评测系统的整体商业计算综合能力,对厂商的要求更高,同时也具有普遍的商业实用意义,目前在银行信贷分析和信用卡分析、电信运营分析、税收分析、烟草行业决策分析中都有广泛的应用,TPC-H 查询包含八张数据表和 22 条复杂 SQL 查询,大多数查询包含多表联接(JOIN)、子查询和聚合查询等。

GreatSQL数据库是一款开源免费数据库,可在普通硬件上满足金融级应用场景,具有高可用高性能高兼容高安全等特性,可作为MySQL或Percona Server for MySQL的理想可选替换。

 

2、测试环境

配置 备注
操作系统 OS:CentOS Linux release 7.9.2009 (Core)
内核:3.10.0-1160.el7.x86_64
CPU Intel(R) Xeon(R) Gold 6238 CPU @ 2.10GHz * 4
内存 251G
磁盘 INTEL SSDPE2KE032T8
数据库 GreatSQL 8.0.32-25, Release 25, Revision 79f57097e3f

提示:在下面运行TPC-H测试时,设置了Rapid引擎最大可使用的内存及线程数。

greatsql> SET GLOBAL rapid_memory_limit = 68719476736;
greatsql> SET GLOBAL rapid_worker_threads = 32;

 

3、测试表结构和数据量

各表数据量对比:

表名 TPC-H SF100数据量 TPC-H SF300数据量 备注
region 5 5 地区信息
nation 25 25 国家表
supplier 1000000 3000000 供应商信息
part 20000000 60000000 零件表
customer 15000000 45000000 消费者表
partsupp 80000000 240000000 配件供应表
orders 150000000 450000000 订单表
lineitem 600037902 1799989091 订单明细表

 

Rapid引擎表空间压缩率:

库名 InnoDB表空间文件总大小 Rapid引擎表空间总大小 压缩率
TPC-H SF100 184570593436 28728373248 6.42
TPC-H SF300 591644573888 74334864443 7.96

 

各表结构关系如下图所示:

图片

 

4、测试结果

GreatSQL 8.0.32-25版本采用全新的Rapid存储引擎,使其在TPC-H性能测试中的表现大大优于此前其他版本、MySQL社区版及Percona Server MySQL、MariaDB等数据库。

 

在TPC-H SF100场景下,运行完成全部22个TPC-H查询SQL的总耗时为79.28秒。在TPC-H SF300场景下,运行完成全部22个TPC-H查询SQL的总耗时为386.195秒

 

   每条SQL详细耗时如下: 

TPC-H Query GreatSQL TPC-H SF100
(32C64G)耗时(秒)
GreatSQL TPC-H SF300
(32C64G)耗时(秒)
Q1 1.184 3.537
Q2 0.924 3.865
Q3 1.324 4.167
Q4 3.678 22.712
Q5 1.287 4.119
Q6 0.344 0.959
Q7 5.48 50.217
Q8 1.13 3.534
Q9 7.311 31.872
Q10 2.885 15.301
Q11 0.477 0.921
Q12 0.799 2.294
Q13 3.758 10.997
Q14 0.966 2.471
Q15 2.831 11.898
Q16 1.194 3.487
Q17 8.537 27.523
Q18 13.007 108.237
Q19 1.892 4.046
Q20 4.21 10.668
Q21 11.965 60.084
Q22 2.513 3.286
总耗时 77.696 386.195

 

GreatSQL SF100 vs SF300(32C64G)对比示意图如下:

图片

 

 

5、测试步骤

5.1 安装 GreatSQL

请参考GreatSQL手册内容:安装指南 ➥ https://greatsql.cn/docs/8032-25/user-manual/4-install-guide/0-install-guide.html,完成GreatSQL安装。

5.2 生成 TPC-H 测试数据

请参考GreatSQL手册内容:TPC-H性能测试 ➥ https://greatsql.cn/docs/8032-25/user-manual/10-optimze/3-2-benchmark-tpch.html,完成TPC-H工具编译安装。

运行 TPC-H dbgen 工具,生成数据文件,一共会生成 8 个表对应的 tbl 数据文件,例如:

$ ./dbgen -vf -s 100
...

$ ls -l *tbl
-rw-r--r-- 1 root root  2463490271 Sep 26 09:20 customer.tbl
-rw-r--r-- 1 root root 79579694556 Sep 26 09:20 lineitem.tbl
-rw-r--r-- 1 root root        2224 Sep 26 09:20 nation.tbl
-rw-r--r-- 1 root root 17793116301 Sep 26 09:20 orders.tbl
-rw-r--r-- 1 root root 12209211160 Sep 26 09:20 partsupp.tbl
-rw-r--r-- 1 root root  2453234158 Sep 26 09:20 part.tbl
-rw-r--r-- 1 root root         389 Sep 26 09:20 region.tbl
-rw-r--r-- 1 root root   142869803 Sep 26 09:20 supplier.tbl

也可以参考 duckdb_dbgen.py ➥ https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/tpch/3.0.1/duckdb_dbgen.py 脚本做法,利用duckdb并行生成测试数据。

5.3 创建 TPC-H 测试数据库表并导入数据

参考GreatSQL社区提供的TPC-H数据库表初始化脚本:tpch-create-table.sql ➥ https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/tpch/3.0.1/tpch-create-table.sql,完成TPC-H测试数据库表创建。

$ mysql -f < tpch-create-table.sql
$ mysqlshow tpch100
Database: tpch100
+----------+
|  Tables  |
+----------+
| customer |
| lineitem |
| nation   |
| orders   |
| part     |
| partsupp |
| region   |
| revenue0 |
| supplier |
+----------+

利用GreatSQL的 parallel load data特性 ➥ https://greatsql.cn/docs/8032-25/user-manual/5-enhance/5-1-highperf-parallel-load.html 并行导入TPC-H测试数据。

需要先修改GreatSQL选项secure_file_priv设置,指向上述 workdir 所在目录,重启GreatSQL使之生效。

参考GreatSQL社区提供的并发导入脚本:load-data-parallel.sh ➥ https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/tpch/3.0.1/load-data-parallel.sh,完成数据导入。

提示:运行LOAD DATA导入数据时,可能会在 tmpdir 产生临时文件,因此要保证 tmpdir 有足够的剩余可用磁盘空间。

5.4 确认Rapid引擎设置,并加载数据到secondary engine

数据导入完成后,在开始运行TPC-H测试前,需要先将测试数据加载到secondary engine引擎中。

先执行下面命令,动态修改Rapid引擎最大可使用内存,其余相关选项均为默认值:

greatsql> SET GLOBAL rapid_memory_limit = 68719476736;
greatsql> SET GLOBAL rapid_worker_threads = 32;

之后,执行以下命令加载测试数据到secondary engine:

greatsql> alter table customer secondary_load;
alter table lineitem secondary_load;
alter table nation secondary_load;
alter table orders secondary_load;
alter table part secondary_load;
alter table partsupp secondary_load;
alter table region secondary_load;
alter table supplier secondary_load;

这个过程需要一定时间,请耐心等待。

5.5 执行 TPC-H 测试

参考GreatSQL社区提供的TPC-H性能测试脚本,完成测试,并记录各个SQL的耗时。

该测试脚本大概工作模式如下:

  1. 先执行22个查询SQL,进行数据预热,每条SQL各执行2次。

  2. 再分别执行22个查询SQL,每个SQL各执行3次。

  3. 每次执行SQL都会记录其起止时间及耗时,如下方所示:

[2023-09-27 01:38:45] BEGIN RUN TPC-H Q1 1 times
[2023-09-27 01:38:46] TPC-H Q1 END, COST: 1.301s


[2023-09-27 01:38:46] BEGIN RUN TPC-H Q1 2 times
[2023-09-27 01:38:47] TPC-H Q1 END, COST: 0.787s

上述结果中的 COST: 1.301s ,即为本SQL的运行耗时:1.301秒。

完整测试报告,详见阅读原文。

 

图片

全新发布丨GreatSQL Rapid 引擎正式上线  存储空间节省85% !

新版本  | GreatSQL 8.0.32-25重磅发布  首次推出高性能内存加速AP引擎

展会 | GreatSQL亮相2023开放原子开发者大会 正式成为基金会捐赠项目

图片
关于万里数据库
图片

 

北京万里开源软件有限公司(简称“万里数据库”)成立于2000年,是专注于国产自主可控数据库产品研发的国家高新技术企业、国家级专精特新“小巨人”企业,拥有发明专利、软件著作权百余项。

 

万里数据库的技术底蕴源自对底层核心代码的掌控,产品始终坚持以“极致稳定、极致性能、极致易用”为目标,经过20余年的研发经验积累,产品在功能、性能、稳定、易用等方面均处于行业领先水平,广泛应用于金融、运营商、能源、政府、交通等行业重要业务系统中的超 1000个业务场景,得到了用户和市场的认可与肯定。

 

2021年,公司创立GreatSQL开源社区,通过对MySQL技术的优化,目前已成长为国内活跃的自主开源数据库社区。

图片
极致稳定  极致性能  极致易用

 

 

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=52517
赞同 1
评论 1 条
  • zlj141319 2024-03-22 08:24:09

    支持

    赞同 0 反对 0
    回复

    DIY,越搞越有机。
万里数据库L3
粉丝 0 发表 24 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2993
【软件正版化】软件正版化工作要点  2912
统信UOS试玩黑神话:悟空  2889
信刻光盘安全隔离与信息交换系统  2771
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1303
grub引导程序无法找到指定设备和分区  1278
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  172
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  171
点击报名 | 京东2025校招进校行程预告  166
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  164
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
我有15积分有什么用? 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
信创再发力!中央国家机关台式计算机、便携式计算机批量集中采购配置标准的通知 8

加入交流群

请使用微信扫一扫!