スペースやパフォーマンスがいつ影響を受けるかを判断するための「公式ベンチマーク」または簡単な経験則はありますか?
私のテーブルには多くの単純なインデックス付きフィールドがあり、
CREATE TABLE t (
id serial PRIMARY KEY,
name varchar(250) NOT NULL,
...
xcontent xml, -- the NULL use disk space?? cut performance?
...
UNIQUE(name)
);
それは一種の「まばらなコンテンツ」であり、多くのxcontent
値が NULL になります...では、これらの XML NULL はディスク容量をいくらか消費しますか?
ノート
正規化できます。テーブルは次のt
ようになりますnt
。
CREATE TABLE nt (
id serial PRIMARY KEY,
name varchar(250) NOT NULL,
...
UNIQUE(name)
);
CREATE TABLE nt2 (
t_id int REFERENCES nt(id),
xcontent xml NOT NULL
);
CREATE VIEW nt_full AS
SELECT nt.*, nt2.xcontnt FROM nt LEFT JOIN nt2 ON id=t_id;
それで、私はこの複雑さが必要ですか?この新しいテーブル配置は、ディスク容量の消費を抑えます。の用法
SELECT id, name FROM nt WHERE name>'john'; -- Q1A
SELECT id, name FROM nt_full WHERE name>'john'; -- Q1B
SELECT id, name FROM t WHERE name>'john'; -- Q1C
SELECT id, xcontent FROM nt_full WHERE name>'john'; -- Q2A
SELECT id, xcontent FROM t WHERE name>'john'; -- Q2B
では、理論的には、Q1A vs Q1B vs Q1C のすべてのパフォーマンスは同じになるのでしょうか?
そしてQ2A対Q2B?