PostgreSQL 中的行安全策略和分区



postgresql 10.6表在字段上启用了行安全策略,例如 id。该表具有基于id的多个分区。

执行选择查询之前,使用SET语句设置了字段的值。

但是,当运行选择查询时,我从解释计划中可以看到,PostgreSQL必须在所有分区中扫描以找到与使用SET语句设置的值相对应的正确分区。

如果idWHERE子句中传递,则选择了正确的分区,而无需通过它们扫描。

有没有办法使行安全策略选择类似于WHERE子句的正确分区?

如果您的策略取决于要设置的参数,则可能会使用current_setting()检索。

由于该值解析时尚不清楚该值,因此PostgreSQL V10不能应用分区修剪

根据您的查询,升级到V11可能会有所帮助,因为此版本在查询执行时间内增加了对分区修剪的支持。

相关内容

  • 没有找到相关文章

最新更新