我正在设计一个在PostgreSQL上运行的数据库布局。在这个数据库中,我需要处理很多地址,所以我自然希望使用地址表,然后让我的其他数据只指向主键。
我希望地址是唯一的,所以我打算在所有数据列上使用简单的主键然后使用唯一索引。
有些事情如下:
CREATE TABLE address(id serial NOT NULL, name VARCHAR(32), address1 VARCHAR(32), address2 VARCHAR(32), postal VARCHAR(12), city VARCHAR(64), CONSTRAINT pkey PRIMARY KEY (id), CONSTRAINT unq UNIQUE (name,address1,address2,postal,city));
我预计从第一天开始就会有超过200万条参赛作品。
该表将受到许多同时SELECTS以及一些INSERTS的攻击。但是出于数据完整性的目的,该表永远不会看到UPDATES或DELETES。
我能从这种表中获得什么样的表现?使用大型表而不是将数据复制到需要的地方是否存在性能损失?
答案 0 :(得分:1)
这取决于这个查询的数量,你的机器有多强,是否有一个可以用于每个查询的好索引...一般来说,PostgreSQL有2百万行它不是一个大数字,当查询时结果很好地受到索引的限制,特别是主键搜索效率很高。
但是,通过LIKE
搜索开头的通配符将是一个性能问题。