![見出し画像](https://assets.st-note.com/production/uploads/images/145440255/rectangle_large_type_2_7c0a310a14a5e442becd0a97290798de.png?width=1200)
それで、マテリアライズドビューっていつ使うのさ?
マテリアライズドビューについての記事を見るといつも思うんですよね。
「いろんなメリットやデメリットがあるのは分かったけど、いつマテリアライズドビューを使っていつ通常のテーブルを使えばいいのさ!」
誤解を恐れずにいうと、マテリアライズドビューが無理なく使えるなら率先して使っていいのではないでしょうか!
マテリアライズドビューにはメリットがたくさんあります。
多くのDBで自動更新されるのでINSERTやUPDATEなどの処理が必要ありません。
またクエリが最適化されているのでパフォーマンス高くクエリを実行できます。
だから使えるなら使えばいいのです。
でもDBの仕様上できない操作もあります。
例えばINSERTやUPDATE、DELETEといったDML操作を行えません。
いわば毎度全件置き換えることになります。
また複雑なロジックや特定の関数が制限されています。
というわけで、結局のところ以下のユースケースに落ち着きます。
頻繁に実行されるちょっと複雑な集計クエリ
リアルタイムに近いデータ取得
テーブルの一部のデータに対する頻繁なアクセス
逆に次の用途には向きません。
複数のデータソースからのデータが最初に集まるテーブル
UPDATEやDELETEが必要なテーブル
非常に複雑なロジックや特定の関数使用
履歴データが必要なテーブル
使わないチームはとことん使わないマテリアライズドビューですが、OLAPではもっと使われていい気がします。
どんどん使ってみましょう!
いいなと思ったら応援しよう!
![Puuuii | 伝える技術と心理学で戦うデータエンジニア](https://assets.st-note.com/production/uploads/images/132912762/profile_035bb93b2f0bebe6400b4e807a808205.png?width=600&crop=1:1,smart)