【发布时间】:2020-07-02 20:28:22
【问题描述】:
我正在尝试对大小 > 1 TB 的表 (PRT_T1) 进行分区。我选择了 2 个分区键 - entity_id_1 和 entity_id_2 以及散列分区。当两个分区键都不是 where 子句的一部分,或者假设只有一个分区键是 where 子句的一部分时,我想了解 postgres 的行为。
我检查了解释计划 -
select *
from PRT_T1 as T1
where T1.entity_id_1=173.
请注意,entity_id_1 和 entity_id_2 列上有索引 执行计划显示首先使用 Bitmap Heap Scan 扫描所有分区,然后使用 BitMap Index scan。我附上了相同的屏幕截图。
问题是这些分区是顺序扫描还是并行扫描?
【问题讨论】:
-
请校对您的问题。您已将 entity_id_1 列为分区键的一部分(两次!),也列为不属于分区键的一部分。很难弄清楚你在这里真正问的是什么。
标签: postgresql database-performance database-partitioning