Postgresql 将postgres分区添加到现有表中
所有例子都表明:Postgresql 将postgres分区添加到现有表中,postgresql,partitioning,pg-partman,Postgresql,Partitioning,Pg Partman,所有例子都表明: CREATE TABLE ... PARTITION BY ... 这有点可笑,因为只有当数据集变得太大时才使用分区,而根据定义,数据集不会是一个新表。如果有人正在用分区创建一个新表,我想几乎所有人都会批评这是一个过早的优化 只需创建一个分区表并将现有表附加为分区: create table test (a int); insert into test select generate_series(1,10); alter table test_parent attach
CREATE TABLE ... PARTITION BY ...
这有点可笑,因为只有当数据集变得太大时才使用分区,而根据定义,数据集不会是一个新表。如果有人正在用分区创建一个新表,我想几乎所有人都会批评这是一个过早的优化 只需创建一个分区表并将现有表附加为分区:
create table test (a int);
insert into test select generate_series(1,10);
alter table test_parent attach partition test DEFAULT;
select * from test_parent;
a
----
1
2
3
4
5
6
7
8
9
10
(10 rows)
您还可以重命名该表。但是,如果执行此操作,则需要重新定义指向原始表的任何视图。我关心的是重命名具有数百万行的表?或者,行数无关紧要,它只是对系统表的更新。它确实需要一个独占锁来完成,但实际操作非常快。更新视图或函数中的任何依赖项的问题要大得多。