Postgresql
Postgres 分區避免冗餘列
假設我有一張表,說
project_data
有很多行,其中數據可以按列分組,然後將每個值project_id integer
分區到一個表中。project_id
當值是隱式時,我是否需要
project_id
每個分區表中的列?似乎在 project_data_5 中有一個額外的列
project_id integer not null default 5
是多餘的,因為它在該表中永遠不會有除 5 之外的值。這適用於 postgresql 10。
是的,分區列必須是表的一部分。
我假設您正在使用列表分區。現在使用列表分區,同一分區 ( ) 中的分區列可以有多個值
FOR VALUES IN (1, 2, 27)
,因此不能從表中省略分區列。此外,分區的主要功能之一是您可以快速附加和分離分區。現在,如果未儲存分區鍵,則附加和分離分區都需要重寫表。