在 AlloyDB for PostgreSQL 中启用自适应过滤

本页介绍了 AlloyDB 中的自适应过滤。

自适应过滤会在查询执行期间分析查询模式和数据分布,以动态选择最有效的过滤策略,例如内嵌过滤或预过滤。

AlloyDB 查询优化器使用基于成本的分析来确定在查询执行期间的任何给定时间点,是内嵌过滤还是预过滤能提供最佳性能。

此类优化对 AlloyDB 的过滤向量搜索有益,在过滤向量搜索中,自适应过滤会自动在向量索引和元数据索引之间切换,以确保您无需手动干预即可获得高效且准确的结果。

启用自适应过滤

如需启用自适应过滤,请使用 scann.enable_preview_features 标志。

当自适应过滤在执行期间触发从内嵌过滤切换到预过滤时,查询计划会动态更改。

例如,当优化器确定在查询的该时间点进行预过滤更高效时,方案可能会在执行策略字段中显示 Bitmap assisted pre-filtering。这种动态变化发生在系统根据在查询执行期间遇到的实际数据进行调整时。

Limit (actual rows=10 loops=1)
  ->  Custom Scan (vector scan) on t1 (actual rows=10 loops=1)
        Execution Strategy: Bitmap assisted pre-filtering
        Order By: (vec_col <=> '[...]'::vector)
        Limit: 10
        Num Requalifications: 0
        Num filtered: 1000
        ->  Bitmap Index Scan on btree_idx (actual rows=10000 loops=1)
              Index Cond: (int_col <= 100000000)

后续步骤