MySQLのVIEWについて

2009/11/30 | MySQL

教えてもらったことをメモ。

とりあえず「単なるデータの格納庫」として、データベースを使っている。MySQLはバージョン5からVIEWが使えるようになった。作り方や使い方はわかっているが「実際のところVIEWって何」と根本的なことが気になった。MySQLのVIEWについて人に教えてもらった。

MySQLのVIEWは大きく2タイプに分かれる(作成時に指定でき、未指定の場合は自動選択される)。

  • MERGE
    SQLを記述する際にVIEWを呼び出すと、VIEWを定義したSQL文が、当該VIEWを記述した部分に割り当てられて実行される。つまりSQL文に仮の名前をつけておくような感じ。
  • TEMPTABLE
    TEMPTABLEを作成して、そこにVIEWで定義したSQL文の結果を展開し、それがテーブルとして扱われる。

TEMPTABLEもイメージとしてはわかっていたのだが、よく理解していなかったので調べてみた。当たり前だがマニュアルに書いてあった。

MySQL バージョン 3.23 以降では、テーブルの作成時に TEMPORARY キーワードを指定することができます。テンポラリテーブルは現在の接続の間のみ有効で、接続が閉じると自動で削除されます。そのため、異なる 2 つの接続が同じテンポラリテーブル名を使用できます。この場合、それぞれの接続のテンポラリテーブル間でコンフリクトが発生したり、同名の既存のテーブルとの間でコンフクリトが発生したりすることはありません(既存のテーブルはテンポラリテーブルが削除されるまで表示されません)。

現在の接続の間のみ有効ね。ということはpconnectすれば、結構な時間使えるということになるのかな。って・・・pconnectもイメージでしかわかっていない。これも調べておくか。

なにはともあれ、VIEWを使う1番のメリットはSQL文の可読性をあげることのようだ。またTEMPTABLEの場合は、場合によっては速くなることもあれば遅くなることもあるようだ。

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net