greenplum - greenplum 进行全盘扫描有什么优势?
问题描述
正如我们所知,GPDB 通过给定的散列键将数据库项目分配到几个段中。我确信它会为条件查询提供更好的性能,特别是对于那些具有给定分布式键/字段的查询,因为它可以大大减少扫描范围。
但是全盘扫描呢?例如,select count(distinct aField) from table
, 或select aField, count(distinct bField) from table group by aField
, ... 等等 - 无条件查询。
所以所有的segment都被全扫描,查询结果会通过网络发送给master进行聚合。我们能从这样的案例中得到什么好处?
解决方案
Greenplum 非常快速地处理顺序扫描,并且由于您的数据分布在各个段中,这意味着小块数据正在由多个段并行扫描。
更不用说您可以使用正确的“行/列”方向方法来组织数据,这可能会导致要扫描的数据更小。
此外,如果您谈论的是海量数据,您可能会使用分区表,这意味着更快的结果。
推荐阅读
- python - 如何更改另一个文件中变量的值
- git-config - 适用于 Windows 的 Git:将 [winUpdater] 部分移出 .gitconfig
- java - 具有 3 个部分的 Android 布局
- java - 尝试为使用 java 的 android 聊天创建时间戳“mm/dd/yyyy hh:mm a”
- c++ - 如何使用变量模板来比较 C++ 17 中的变量类型?
- c++ - 三重无效删除运算符语法
- flutter - 我在颤振上运行我的第一个项目时遇到错误。如何解决?
- php - 试图将图像从 php 表单上传到 db
- c++ - DirectX 11 -- Hello Triangle Not Rendering -- 原因:多线程 C++ 运行时库
- cron - Anacron,防止同一天多次执行