PostgreSQL 11.1-在执行时稳定分区修剪
我们正在为我们的产品评估PostgreSQL 11,试图使用分区来简化真空工作 我们的系统每秒更新4251次,每秒删除约1000次,每秒插入约3221次,每天处理10亿次事务 我们面临的问题是分区修剪不能稳定地与更新一起工作,尽管我们有:PostgreSQL 11.1-在执行时稳定分区修剪,postgresql,database-partitioning,Postgresql,Database Partitioning,我们正在为我们的产品评估PostgreSQL 11,试图使用分区来简化真空工作 我们的系统每秒更新4251次,每秒删除约1000次,每秒插入约3221次,每天处理10亿次事务 我们面临的问题是分区修剪不能稳定地与更新一起工作,尽管我们有: part_key=我们的where子句中的值 启用分区修剪='on' 我们知道在11有一个新补丁,它应该支持(更快的分区修剪+执行时的分区修剪) 如何进行稳定的分区修剪?当它不起作用时,如何确定原因?哪些参数会影响它?如果您在PostgresSQL v11中设
where
子句中的值启用分区修剪='on'
李>
我们知道在11有一个新补丁,它应该支持(更快的分区修剪+执行时的分区修剪)
如何进行稳定的分区修剪?当它不起作用时,如何确定原因?哪些参数会影响它?如果您在PostgresSQL v11中设置了
启用分区修剪
,它将不会扫描那些由于WHERE
条件而可以排除的分区
这只适用于优化器或执行器可以轻松推断分区键条件的情况。因此,您需要在查询中设置一个简单的键形式条件,其中
是=
,
,=
和
在查询期间保持不变(例如,不包含任何VOLATILE
函数)
请提供一个例子,说明“不稳定工作”的含义,然后可以说明更多内容。您不使用Postgres 11最新次要版本11.2的任何原因请回答您的问题,并提供一个完整的查询,即完整的create table
语句(包括分区定义)和使用explain(analyze,buffers)
生成的执行计划,这两种情况(有分区修剪和没有分区修剪)都可以随意显示。您的问题是,不要在注释中发布代码