是否有“官方基准”或简单的经验法则来决定空间或性能何时会受到影响?
我的表有许多简单的索引字段,
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?