PostgreSQL on QingCloud 正式支持列存储,查询性能提升 35 倍!

百家 作者:QingCloud 2023-02-15 22:32:21

青云推出的云数据库 PostgreSQL(PostgreSQL on QingCloud)近期正式支持列存储!
在 V2.0 及以上版本中,Citus 插件通过支持列存储,能够大幅提升压缩率和查询性能。经测试,数据的查询性能得到 35 倍提升,分析性能得到 11 倍提升。
### 性能数据
- Count(*)
35倍性能提升
``` -- 列存用时 4秒 postgres=# select count(*) from perf_columnar ; count ---------- 75000000 (1 row) Time: 4369.697 ms (00:04.370) -- 行存用时 137秒 postgres=# select count(*) from perf_row ; count ---------- 75000000 (1 row) Time: 137164.623 ms (02:17.165) ```
- 分析性能
11倍性能提升
``` -- 行存用时 134秒 postgres=# SELECT vendor_id, SUM(quantity) FROM perf_row GROUP BY vendor_id OFFSET 1000; vendor_id | sum -----------+----- (0 rows) Time: 134067.674 ms (02:14.068) -- 列存用时 14秒 postgres=# SELECT vendor_id, SUM(quantity) FROM perf_columnar GROUP BY vendor_id OFFSET 1000; vendor_id | sum -----------+----- (0 rows) Time: 14184.814 ms (00:14.185) ```

Citus 同时支持行存和列存两种存储模式,来满足和适应不同的应用场景需求。通常,行式数据库主要应用于在线交易性的 OLTP 应用,而列式数据库一般应用于 OLAP,适用于海量静态数据的分析。
行存即按行存储,数据写入的 I/O 开销相对较小,运行速度快。查询多个字段时,因为记录在一个数据块中,速度有明显的优势。行存储劣势在于,查询少量字段时,也需要访问整条记录,造成较大的 I/O 开销,同时行存压缩比相较列存小,更加适合 OLTP 场景。
列存即列存储,压缩比可以做到很高,查询少量字段时,所需扫描的块更少,降低了 I/O 开销。劣势在于查询大量字段或者查询的记录数少时,要访问较多的块。比较适合 OLAP 场景。
此次对列存储的支持,能够帮助用户节省存储空间,实现查询性能显著提升,降低查询响应时间
未来,青云 PostgreSQL 团队将密切关注并紧跟社区最新内核版本,保持一致发布节奏,为开发者和企业用户提供更多 PostgreSQL 数据库可靠、可扩展的强大功能。

- FIN -

推荐阅读



点击“阅读原文”了解产品更多信息

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接