[pgsql-jp: 28819] Re: 複数テーブルを統合するようなテーブルについて

tomita ntomita @ pana.net
2003年 1月 28日 (火) 19:54:14 JST


冨田です。
早速お返事ありがとうございます。>高橋さん、海老名さん

機能的には、UNIONを使用したVIEWを作成する事で、実現できますね。
実際、検索のみの使用と考えていますので、この方法も有効なのですが、

> "検索のみ"でしたらVIEWを作成するのはどうでしょう?
>
>INSERT INTO test1 (name) VALUES ('hoge');
>
> CREATE VIEW test AS
>   SELECT date, name, add, tel
>   FROM test1
>  UNION
>   SELECT date, name, add, tel
>   FROM test2
>  UNION
>   SELECT date, name, add, tel
>   FROM test3;

> SELECT * FROM test WHERE name='hoge';
> で一応検索できました。

テーブル(test1,test2,test3)に
CREATE INDEX index1 on test1(name);
CREATE INDEX index2 on test2(name);
CREATE INDEX index3 on test3(name);
の3つのインデックスがあった場合に

select * from test where name='hoge';
として検索しても、インデックスを使用せず、
全件見に行ってしまいますよね。

3つのテーブル(test1,test2,test3)に
100万件程度データがあった場合に、
ものすごく検索に時間が掛かりそうですね。

他に何か言い方法は無いでしょか?

宜しくお願い致します。



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