相关疑难解决方法(0)

获取表的所有分区名称

我想列出 PostgreSQL 9.1 中由动态触发器创建的所有分区。
我能够使用Frank Heikens 的这个相关答案生成分区计数。

我有一个表foo有一个INSERT触发器创建foo_1foo_2等动态。插入的分区是根据主键 id 选择的,这是一种基于范围的分区。

是否可以显示 table 的当前所有分区foo

postgresql partitioning

17
推荐指数
2
解决办法
4万
查看次数

大表中完全空的列如何影响性能?

我在 Postgres 数据库中有 4 亿行,表有 18 列:

id serial NOT NULL,
a integer,
b integer,
c integer,
d smallint,
e timestamp without time zone,
f smallint,
g timestamp without time zone,
h integer,
i timestamp without time zone,
j integer,
k character varying(32),
l integer,
m smallint,
n smallint,
o character varying(36),
p character varying(100),
q character varying(100)
Run Code Online (Sandbox Code Playgroud)

ekn都是 NULL,它们根本不存储任何值,此时完全没用。它们是原始设计的一部分,但从未被移除。

编辑 - 大多数其他列都是非 NULL。

问题:

  1. 如何计算这对存储的影响?它是否等于列的大小 * 行数?

  2. 删除这些空列会显着提高该表的性能吗?页面缓存能够容纳更多行吗?

postgresql performance database-design storage disk-space postgresql-performance

13
推荐指数
1
解决办法
4824
查看次数