MySQLのViewを使った感想

100万件以上のデータを持つDBで、Viewテーブルを使える機会があったので使ってみました。結果としては残念なことに。Viewテーブルを利用するだけでは性能改善につながりません。

Viewテーブルについて調べているときに、「MySQLのViewテーブルは裏側でcreateしたときのSQL発行するだけだから、単独では性能改善につながらない」という内容の記事を見たんですが、まさにその通りの結果になりました。ViewテーブルをcreateしたときのSQLでの検索性能と、Viewテーブルを使って同様のデータを取得しようとしたときの性能はほぼ一緒。改善された様子はありませんでした。

DBにOracleを使っていたときは、性能改善の手段として、まず変数のbind化やストアドプロシージャと供にViewテーブルを使って性能改善をしていた記憶があるので、Viewテーブルに対して検索をかけたときは単一テーブルに対して検索かけた程度の性能が期待できるのかと勘違いしていました。OracleではSQL発行の窓口としてのViewテーブルではなく、実際にデータを持っていたんでしょうか。(もう5年近く前の経験なので、今は全く変わっているかもしれません。Oracle)