私は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は表示されません。
この種のテーブルでは、どのようなパフォーマンスが期待できますか?データを必要な場所にコピーするのではなく、大きなテーブルを使用するとパフォーマンスが低下することはありますか?
簡単にテストできます。彼らは(慎重なスクリプトによって、またはソート-u' 'のいずれかによって)ユニークだことを確認し、ランダムな文字列を2万セットを生成するためにあなたの好きなスクリプト言語を使用してデータベースにロードします。テストの場合、住所が住所のように見えるかどうかは関係ありません。 –