columnstore - cstore 列式存储中的条件匹配
问题描述
在列存储中,所有分析查询都将比行存储更快。如果要包含在查询中的记录使用条件过滤怎么办?
select sum(A.a) from A where A.b > 100 and A.c <= 10;
当列单独存储时,列存储如何管理过滤。还有它如何在各种表中应用连接。
解决方案
cstore_fdw 对每个列块使用块范围过滤器。在读取列数据之前,它首先检查数据范围与过滤器是否兼容。因此,如果您沿过滤列的数据分布有助于删除数据块,那么您将获得显着的性能提升。
关于连接,cstore_fdw 不执行任何操作。它组合数据行并将其转发到 postgres 引擎以进行进一步处理。进一步的处理可能是聚合、窗口函数处理或连接操作。
推荐阅读
- javascript - vue - 通过组件数组添加时属性不反应
- r - 条形图无法呈现(错误:第一个参数,`data`,必须是数据框或共享数据。[没有可用的堆栈跟踪])
- sql-server - 试图理解 - IN(带有 UNION 的子查询)
- c# - 在 MVC 中将数据逻辑放在哪里?
- angular - Angular cli ng 创建错误:无法读取未定义的属性“种类”
- json - 'manifest_version' 键必须存在并设置为 2(不带引号)
- android-studio - Android Studio / Flutter 项目中的默认图标对象中缺少图标:没有为“图标”类型定义 getter 'menu_book'
- azure-devops - Azure DevOps Wiki 支持哪个版本的美人鱼
- android - 使用 build.gradle 注入编译时属性(无需修改)
- gpu - CPU 上的 XLA——收益从何而来?