page_adsence

2013年6月20日木曜日

MySQLのViewは高速化するわけではない

MySQLのViewはショートカットみたいなもので、Viewに対して処理をするとViewで書かれているSQLを毎回実行している。
SQL文自体はシンプルになるが、高速化されているわけではない。
 もし本当にViewを使って高速化を図るのであればoracleのマテリアライズドビューを使う必要がある。マテリアライズドビューはViewを作るために利用されているSQLを定期的に実行し、 その結果のスナップショットをとっておくようになっているため、Viewに対してSQLが流れても、そのスナップショットを元に取得するようになっているため、高速化が期待できる。
マテリアライズドビューを使用するにあたって一番の問題点はマテリアライズドビューのスナップショットを更新するタイミングにある。
スナップショットを更新するには当然負荷が掛かるので、どのタイミングで更新し、スナップショットを取っておくかが要検討事項となる。