我有一个由几个表继承的日志表:
CREATE TABLE log (
IdGlobal uuid NOT NULL DEFAULT uuid_generate_v1(),
Version integer NOT NULL DEFAULT 0,
ChangeDate TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
IsDeleted bool DEFAULT false
);
CREATE TABLE Customer (
Id SERIAL PRIMARY KEY,
Code text NOT NULL UNIQUE,
Name text NOT NULL,
) INHERITS (log);
然而,我想知道它是否会对性能产生影响。该数据库适用于开发中的SASS应用程序(早期阶段),将有1个schema = 1公司。
据我所知,postgres的主要优点是分区,但我的用例与典型的OOP更相关。
从长远来看,日志表增加大小会伤害我吗?我把索引放在哪里?在父母或孩子的? (我将通过IdGlobal& version进行搜索)
答案 0 :(得分:0)
日志表大小不会影响对Customer表的查询,实际上是另一种方式:默认情况下,日志表中的SELECT,UPDATE和DELETE也将针对Customer表运行,除非您指定ONLY子句,即 SELECT * FROM ONLY log;
索引和约束(唯一,主键和外键)仅适用于单个表,而不适用于整个继承层次结构,因此,不幸的是,您需要为父表和子表单独创建它们。这也意味着您不能拥有覆盖层次结构中所有表的唯一索引。