[pgsql-jp: 40991] Re: ある列にPRIMARY KEYインデックスとUNIQUEインデックスが両方ある場合

Kasahara Tatsuhito kasahara.tatsuhito @ gmail.com
2011年 11月 21日 (月) 02:08:43 JST


笠原と申します。

> 公式マニュアルを見たところ、「技術的には、PRIMARY KEYは単なるUNIQUEとNOT NULLの組み合わせです。 」と書かれておりましたので、
> UNIQUEインデックスを削除しようと思うのですが、何かリスク等はありますでしょうか?
特に無いと思います。

むしろ、無駄なインデックスを削除できるので更新処理などのオーバーヘッド削減や
DB容量の削減ができるので色々とメリットがあると思いますよ !


2011年11月19日5:34 柏木大助 <kashiwagi @ sencorp.co.jp>:
> はじめてメールします。
> 柏木と申します。
>
> インデックスについてご教授ください。
>
> 前任者からシステムを引き継いだのですが、
> ほとんどのテーブルで、主キーのカラムにPRIMARY_KEYインデックスとUNIQUEインデックスが両方作成されていました。
>
> ■例:
> => \d item
>                                             テーブル "public.item"
>      カラム      |             型              |                                修飾語
> ------------------+-----------------------------+----------------------------------------------------------------------
> id     | integer                     | not null デフォルト
> nextval('item_id_seq'::regclass)
> インデックス:
>    "item_pkey" PRIMARY KEY, btree (id)
>    "item_pk" UNIQUE, btree (id)
>
>
> 公式マニュアルを見たところ、「技術的には、PRIMARY KEYは単なるUNIQUEとNOT NULLの組み合わせです。 」と書かれておりましたので、
> UNIQUEインデックスを削除しようと思うのですが、何かリスク等はありますでしょうか?
> http://www.postgresql.jp/document/pg844doc/html/sql-createtable.html
>
>
> ■環境
> => select version();
>                                                      version
> -------------------------------------------------------------------------------------------------------------------
>  PostgreSQL 8.4.4 on x86_64-unknown-linux-gnu, compiled by GCC gcc
> (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48), 64-bit
>
> よろしくお願いいたします。
> 柏木
>



-- 
Tatsuhito Kasahara
kasahara.tatsuhito _at_ gmail.com


pgsql-jp メーリングリストの案内