« PHP:flock()関数 | メイン | PHP:link()関数 »
2006年12月06日
PostgreSQL:viewに関する考察
viewは使い方によってDBシステム構築の効率を上げるのは確かですが、一般的にtableから直接SELECTする場合よりもレスポンスが遅くなるため、ユーザー数が多い動的サイトでの使用には向いていません。
■ テストテーブル(店舗情報)
create table shopinfo(
"shop_id" integer not null,
"shop_name" varchar(100) not null,
"auth" boolean not null,
Constraint "shopinfo_pkey" Primary Key ("shop_id")
);
■ テストビュー
create view shoplist as
select
shop_id,
shop_name
from shopinfo
where auth='t'
END;
上記2つのようなテーブルとビューを作成してそれぞれに対してSELECT文を実行した場合、明らかにレスの早さに差があります。
SELECT * FROM shopinfo WHERE auth='t' //速い
SELECT * FROM shoplist //遅い
一般ユーザー向けサイト → viewは使用しない
管理者用管理画面 → viewを使用する
といった使い分けが無難といえそうです。
投稿者 wing : 2006年12月06日 00:03