PostgreSQL OLAP新高度 - CPU向量计算和瓦片式存储.docxVIP

PostgreSQL OLAP新高度 - CPU向量计算和瓦片式存储.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PostgreSQL OLAP新高度 - CPU向量计算与瓦片式存储 本文章来自于阿里云云栖社区 摘要:?标签 PostgreSQL , OLAP , 向量化 , vector , postgrespro , tiles , 瓦片 , 瓦片索引 , map , reduce , 分组聚合 , 非分组聚合 , 分区键 , sort key , order by , brin , cpu Cache , projection , 行列变换 背景 在主流的OLTP数据库产品中,毫无疑问,PostgreSQL已经具备非常强大的竞争力(性能、功能、稳定性、成熟度、案例、跨行业应用等)。 标签 PostgreSQL , OLAP , 向量化 , vector , postgrespro , tiles , 瓦片 , 瓦片索引 , map , reduce , 分组聚合 , 非分组聚合 , 分区键 , sort key , order by , brin , cpu Cache , projection , 行列变换 背景 在主流的OLTP数据库产品中,毫无疑问,PostgreSQL已经具备非常强大的竞争力(性能、功能、稳定性、成熟度、案例、跨行业应用等)。  HYPERLINK /digoal/blog/blob/master/20170201.md 《数据库选型之 - 大象十八摸 - 致 架构师、开发者》(原文链:/digoal/blog/blob/master/20170201.md?spm=5176.100239.blogcont70993.17.UKDSBnfile01.md)  HYPERLINK /digoal/blog/blob/master/20170203.md 《数据库选型思考》(原文链接:/digoal/blog/blob/master/20170203.md?spm=5176.100239.blogcont70993.18.iWIN23file03.md)  HYPERLINK /digoal/blog/blob/master/20170101.md 《数据库界的华山论剑 》(原文链接:/digoal/blog/blob/master/20170101.md?spm=5176.100239.blogcont70993.19.NJsNISfile01.md)  HYPERLINK /digoal/blog/blob/master/20160902.md 《PostgreSQL 前世今生》(原文链接:/digoal/blog/blob/master/20160902.md?spm=5176.100239.blogcont70993.20.fv1eyJfile02.md) 在OLAP领域,PostgreSQL社区也是豪情万丈的,比如内核已经实现了基于CPU的多核并行计算、算子复用等。 在社区外围的插件如 GPU运算加速、LLVM、列存储、多机并行执行插件 等也层出不穷。 虽然如此,PostgreSQL在OLAP领域还有非常巨大的提升潜力。 OLAP profiling 分析 (OLAP哪些过程最耗资源) OLAP单个查询就会涉及大量数据的处理,与OLTP有非常鲜明的差别,那么数据库在OLAP场景会有哪些明显的瓶颈呢? 1. unpack row(tuple) 带来的开销 在PostgreSQL中,数据以行存储,变长类型可能存储在TOAST中,由于它是变长的,当访问第N列的数据时,也需要unpack前N-1列的内容数据(不过这块有优化空间,比如在行头记录每列的OFFSET,但是这样又引入另一个问题,增加了OFFSET必然会增加空间开销)。 另一种优化方法是业务层面的,比如将定长类型和变长类型拆分成两张或多张表,或者将不怎么访问的大字段拆开到其他表,通过JOIN关联它们。 不要小看这笔开销,这笔开销是O(N)的,所以数据量越大,开销越大,比如TPCH的Q6,40%是ROW格式化带来的开销。 2. 解释执行引入的开销 PostgreSQL的优化器通过构建树的方式来表述执行计划,所以执行器必须以递归的方式从树的最边缘节点一直往上执行。 解释执行的好处是弹性,容易改写,比如PG的customize scan ,GPU运算就用到了它。 通常解释执行比native code慢10倍,特别是在表达式非常多时。 你可以通过这种方式观察 postgres=# set debug_p

文档评论(0)

xiaofei2001129 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档