0001NAME IS NULL2006/06/20(火) 11:28:32ID:??? 無知な私に教えてくださいm(_ _)m Where文でよく使う項目にインデックスを貼っていたのですが ググったりして探してみるとどうも違うようですが、みんな曖昧な言いまわしで よくわかりません。 たとえば、PostgreSQLで以下のようなテーブルがあるとします。 --------------------------- SNO NUMERIC(8) [PRIMARY KEY] NAME VARCHAR(100) SEX NUMERIC(1) -- 0:男、1:女 --------------------------- SNOは通し番号でPRIMARY KEYなのでインデックスが貼られますが クエリー発行時に「where SEX = 1 」とよく利用する場合にSEXにはインデックスを 貼るべきなのか貼らないべきなのかが分かりません。
000212006/06/20(火) 11:31:40ID:??? 試しに二つのテーブルを用意して実験してみました。 --テーブル1 create table test1( sno serial not null, name varchar(100), sex numeric(2), primary key(sno) );
--テーブル2 create table test2( sno serial not null, name varchar(100), sex numeric(2), primary key(sno) );
create index test2_indexA1 on test2 (sex);
この二つのテーブルにまったく同じデータを10個ほど入れて ・explain select * from test1 where sex = 1 ; ・explain select * from test2 where sex = 1 ; を実行してみました。