【#PostgreSQL】マテリアライズドビュー,らしい...
関連記事
- 【#PostgreSQL】太古の昔から動いているシステムのレコード,手修正作業をするなど,と 【2023年10月06日(金)】
- 【#PostgreSQL】テーブルから取得したレコードセットをCSVへ落とそうとすると,空ファイルが出来る...ドロドロドロ 【2023年03月08日(水)】
- 仕事オワタ 昼寝しよ(GRB爆 【2023年02月23日(木)】
- 【#PostgreSQL】鬼のような4本のSQLを書き上げた 【2023年01月13日(金)】
- 【#PostgreSQL】某改造案件,凶悪なSQLを書かないといけないじゃないっすかっ!計4本(汗 【2023年01月12日(木)】
謎な案件のデータベース構造
拡張するような話がチラホラと?
あちこちview書いているけど,今度の改造でフィールド数増えるし,結合テーブル増えまくるし?
これで速度が落ちそうな気が(微汗
クエリいじって解決しねぇ~かねぇ~と1週間ほど悩んでおったが
なんのことはない
マテリアライズドビュー
を使えばいいみたい
これを
CREATE VIEW testview AS SELECT master.mastermainkey, master.testcd, master.testname, data.datamainkey, data.datavalue FROM ( SELECT id AS mastermainkey, testcd, testname FROM mas_test WHERE activefl = true) master JOIN ( SELECT id AS datamainkey, masmainkey, datavalue FROM tbl_data WHERE activefl = true) data ON master.mastermainkey = data.masmainkey;これに変更
CREATE MATERIALIZED VIEW testview AS /*この行変更*/ SELECT master.mastermainkey, master.testcd, master.testname, data.datamainkey, data.datavalue FROM ( SELECT id AS mastermainkey, testcd, testname FROM mas_test WHERE activefl = true) master JOIN ( SELECT id AS datamainkey, masmainkey, datavalue FROM tbl_data WHERE activefl = true) data ON master.mastermainkey = data.masmainkey;
マテリアライズドビューは,テポラリテーブルを良きにはからって作ってくれて,
結果セットをこのテンポラリテーブルへ勝手にキャッシュするそうな
出力は,生テーブルをこねくり回して出力するんじゃなく,このテンポラリテーブルから出力されるとのこと
なんで,生テーブル側を更新しても,テンポラリテーブルは自動更新してくれないのは要注意
このテンポラリテーブルを最新情報に書き換えるには
refresh materialized view
コマンドを使わないといけないとのこと
↑の例なら
refresh materialized view testview;でキャッシュがリフレッシュされるぞー
refresh materialized view は少し重い命令だそうで(まぁ,そりゃそうだわな).テーブルロックがかかったり騒ぎになるかも?だそうで
軽く実行させるには「CONCURRENTLY」オプションをつけろじゃげな
refresh materialized view concurrently testview;うちのケースだと
80msぐらいかかってた巨大クエリが50msしかかからなくなった.
3割ぐらい速くなったかな?
これを元で実装計画を,ば?
コメント
【#RUANG】インドネシア:ルアング山で火山が大規模噴火:愛媛で震度6弱な緊急地震速報(24/4/18)
イオンモール宮崎の辺りにイノシシが登場した,らしい
コンビニ誤交付、富士通に行政指導 原因究明と再発防止を要求―総務省
【#桜】花立公園で桜見物してきた!都井岬まで足を伸ばした!遠かった(爆
【#大谷翔平】水原一平氏、米連邦検察が銀行詐欺容疑で訴追…大谷翔平選手の口座から24億5千万円以上を不正送金
【#緊急地震速報】宮崎県日南市で震度5弱 津波の心配なし M5.2(24/2/8)
ずっと天気が悪いのぉ.菜種梅雨とはよく言ったものやじ(24/4/5)
【#暴風警報】宮崎市に暴風警報発令(24/3/26)