我正在设计一个在PostgreSQL上运行的数据库布局。在这个数据库中,我需要处理很多地址,所以我自然希望使用地址表,然后让我的其他数据指向主键。PostgreSQL大型表SELECT/INSERT性能?
我希望地址是唯一的,所以我打算使用一个简单的主键,然后在所有数据列上使用唯一索引。
沿着这个东西线:
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万个条目。
该表将被很多同时选择和一些插入命中。但为了数据完整性目的,表格永远不会看到UPDATES或DELETES。
这种表可以期待什么样的表现?使用大型表而不是将数据复制到需要的地方会有性能损失吗?
它很容易测试。使用您最喜欢的脚本语言来生成200万套随机字符串,确保它们是唯一的(通过小心脚本或'sort -u')并将它们加载到数据库中。对于测试,地址是否看起来像地址并不重要。 –