我正在設計一個在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')並將它們加載到數據庫中。對於測試,地址是否看起來像地址並不重要。 –