
環境:RedHat Linux AS3.0 / PostgresSQL 7.3.6
Publicスキーマにインデックス付きのテーブルを作成し、
複数のスキーマにビューを作成してそのテーブルをそのまま参照したいと思っています。
(スキーマの数が非常に多いので、実体をひとつにし、
ディスク容量を抑えるのが目的です。)
環境のイメージは以下の通りです。
◆Publicスキーマにテーブル作成-------
create table TEST_TABLE (
id int,
data varchar
);
◆test_tableにインデックスを作成-------
create unique index TEST_KEY on TEST_TABLE (
id
);
◆test_schemaスキーマを作成-------
create schema TEST_SCHEMA;
◆test_schemaスキーマにビューを作成-------
create view TEST_SCHEMA.TEST_VIEW as
select
id,
data
from TEST_TABLE
;
このような環境にて「TEST_VIEW」にSELECTをかけた場合、
「TEST_KEY」は踏襲されるのでしょうか?
ビューに対してインデックスは作成できないようなので、
テーブルに対してはられたインデックスはビューでも生きている
のではないかと考えたのですが、
上記認識で合っているかどうか
ご存知の方がいらっしゃいましたらご教授頂けると助かります。
宜しくお願い申し上げます。
No.2ベストアンサー
- 回答日時:
ビューは仮想的なテーブルで、呼ばれたときに、実際に定義部分に書かれた、SELECT文が実行されます。
したがって、踏襲もなにも・・・
select
id,
data
from TEST_TABLE
が、実行されるんですから、インデックスは活きます。
ご回答ありがとうございます。
下にも書いたとおり、実際に試してインデックスが使用されていることを確認しました。
よく考えてみれば、ビューは実際にテーブルにSELECTをかけに行くのだから、インデックスが使用できるのは当たり前ということですね。すこし勘違いしていた部分があったようですが、おかげさまで理解できました。
ありがとうございました。
No.1
- 回答日時:
使われると思いますよ。
とりあえず、EXPLAINしてみては?
この回答への補足
環境を作成しEXPLAINをしてみたところ、Index Scan されていました。
上のmasayuki0511さんからのご説明の通り、インデックスはビューからも使用可能なのですね。
zebedeerさん、ありがとうございました。
(恥ずかしながらEXPLAINを初めて使ったので、勉強になりました!)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL テーブル作成時のカラムについて 2 2022/08/27 21:48
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- MySQL MySQLのテーブル作成で 自信がありません。 2 2022/08/28 05:35
- MySQL MYSQL エラー 2 2022/10/18 11:37
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データベース ユーザの「このユ...
-
カラムサイズの取得
-
PostgreSqlのシステムスキーマ...
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
SELECT INTOで一度に複数の変数...
-
sqlに記述できない文字
-
オラクルのUPDATEで複数テーブル
-
UPDATEで既存のレコードに文字...
-
truncate tableを使って複数の...
-
chr(13) と char(13) の違いっ...
-
JDBCを使ってdate型へのINSERT...
-
SQLをExcelで書いている人を良...
-
エラーを起こす方法
-
SELECT文の結果をDEFINEの値と...
-
VBAでの行数を揃える方法
-
SQLで、Join句で結合したテ...
-
既存データをINSERT文にして出...
-
テーブル定義書(Oracle) 【IX】...
-
UNION ALLでつなげた複数ビュー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベース ユーザの「このユ...
-
dumpでインデックスだけ抜きたい
-
ACCESSにおいてスキーマとは
-
全テーブルの列数を調査したい
-
DB2でテーブルのサイズを見たい
-
認知心理学で言うスクリプトとは?
-
PostgreSqlのシステムスキーマ...
-
ORACLEのスキーマーを別のORACL...
-
SQL ServerのXMLスキーマがうま...
-
カラムサイズの取得
-
FROM句のスキーマ名、テーブル...
-
PostgreSqlシステムカタログを...
-
EBCDICとCCSIDの違いとは
-
DBをまたいで更新
-
スキーマ定義とは一体どう言っ...
-
access2000からPostgresSQLのテ...
-
アクセスのレポートの表示順
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
SELECT INTOで一度に複数の変数...
おすすめ情報