PG数据库插件性能对比测试

简介

PG-Strom是在PostgreSQL上的GPU插件,可以使用GPU进行运算。

cstore_fdw是PostgreSQL上的列式插件,使用该插件可以对表进行列式存储。

对比原生PG与使用上述插件的导入及查询性能。

系统配置

CPUIntel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz*4
内存8G
磁盘260G ssd
GPUNVIDIA Tesla P40(24G显存)*1

性能测试

原始数据美国2008年飞行数据(MapD官方提供)行长约400B,共2.1亿行,84G

3.1 入库性能

数据库导入性能表大小数据压缩比
pg-strom9.3w/s66G1.27
pg-strom多进程导入23.9w/s66G1.27
cstore_fdw7w/s3.8G22.1

3.2 查询性能

测试语句:

Sql1: select count(*) from flights;
Sql2: select count(*) from flights where origin_country=’USA’;
Sql3: select count(*) as cnt,avg(distance) as dis from flights where flight_month=10;
Sql4: select origin_city,dest_city,count(*) as cnt,avg(airtime) as atime from flights group by origin_city,dest_city order by cnt desc,atime;
Sql5: select origin_state,dest_state,count(*) as cnt,avg(airtime) as atime from flights where distance<175 group by origin_state,dest_state ;

性能对比:

无缓存:

Sql 查询耗时(ms)pgpg with pg-stromcstore_fdwpg-strom & cstore_fdw
sql170833861962447835965
sql2143490907824931647441
sql3754908869967667902
sql412866669421914162485152
sql5212259919564123039182

有缓存:

Sql 查询耗时(ms)pgpg-stromcstore_fdwpg-strom & cstore_fdw
sql171456869462250335686
sql2142894910043974338782
sql3742878887445954686
sql412706289276811936264952
sql5211838881074195138719

测试结论

  1. 入库性能:PG一个导入进程只能用满1核,故需要多进程导入才能达到性能上限。但是cstore_fdw不支持多进程并发导入,只支持单进程。
  2. cstore_fdw插件数据压缩比很高,甚至高于vertica的13.12。
  3. 两个插件较原生PG均能大幅提高性能,且可以共同生效。
  4. 有无缓存对PG性能基本没有影响,只有cstore_fdw插件在有缓存场景下性能有所提升。
  5. 分析型业务可以使用cstore_fdw插件提速,但是该插件使用外部表,功能上限制较大,不支持删除与修改。

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据