10月11日にMySQL 4.1の最終リリース予定が発表された。それによると,2週間後,すなわち10月中には最終リリースとなるようだ。MySQL 4.1にはいくつもの新機能が搭載されている。それらをすべて紹介するには,多くのスペースが必要となる。そこで,今回は,Windows版のインストーラと手軽に利用できる新機能プリペアド・ステートメントを紹介する。

Microsoftのオープンソース・ソフトウエアをインストーラに採用

写真1●Setup Wizard(Custom Setup)
写真2●Instance Configration Wizard
写真3●Instance Configration Wizard
デフォルト・キャラクタセットの選択
表1●言語環境別のプリペアド・ステートメント対応状況
環境 サポート内容
C・C++ サポート済み
PHP mysqli(PHP5)
Java MySQL Connector/J v3.1
Perl DBD::mysql v2.9
.NET MySQL Connector/
 プリペアド・ステートメントを解説する前に,MySQL 4.1のインストールを紹介しよう。紹介する画面は,MySQL Pro 4.1.5 gamma Windows版(mysql-pro-4.1.5-gamma-win.zip)である。

 MySQL 4.1のWindows版のインストールを実行すると高額な製品と見間違えるほどのインストール画面が展開される。インストーラは,暗に圧縮ファイルの展開だけでなくインストール内容カスタマイズを行う「Setup Wizard」(写真1[拡大表示])やサーバー・プロセスの環境設定を行う「Instance Configration Wizard」(写真2[拡大表示],写真3[拡大表示])を含んでいる。好みはあるだろうが,UNIX版と比べると大きな違いだ。

 Windows版に関してはこのように高度なインストーラにより手軽にインストールが行える。なお,以前紹介したMySQL Administrator(本稿執筆時は,バージョン1.0.3-alpha)が,製品プロダクトとして商用版の提供が始まる。Windows環境であれば,あわせて利用するといいだろう。

 ここでWindows版のインストーラを紹介したのにはわけがある。MySQL 4.1のWindows版には,Microsoftが今年4月にソースコードをオープンソース・ライセンスで公開したWiX(Windows Installer)ツールが採用されている。WiXツールは,Windows用インストール・パッケージを作成するための機能だ。Microsoftのオープンソースを採用したことについて,賛否の分かれるとことだ。もっともMySQLデータベース・エンジンそのもに採用されているわけではないので,心配はいらないようだ。

処理を高速化する新機能プリペアド・ステートメント

 プリペアド・ステートメント(prepared statement)とは,あらかじめSQLステートメントを登録しておく機能だ。WHERE句などの条件には,変数を利用できる。プリペアド・クエリと呼ぶこともある。あらかじめSQLステートメントをコンパイルして実行するため,同様のSQLステートメントをくり返し実行する処理を高速化できる。

 また,セキュリティ面でも効果を発揮する。パラメータとしてSQLステートメントを入力され実行されてしまう「SQLインジェクション」と呼ばれる不正アクセスへの対策としても有効である(関連記事)。

 現時点で,各言語環境のAPIは,表1のような対応状況になっている。

 現在サポートしていない環境も順次対応を予定している。なお,APIでは,プリペアド・ステートメントの処理をクライアント側で行うものと,サーバー側で行うものの2種類がある。もちろん,サーバー・サイドで処理を行う方が標準だ。クライアント・サイドの処理は,プリペアド・ステートメントのエミュレーションである。

 PHPのドライバmysqliによるプリペアド・ステートメントに関しては,「【PHPウォッチ】データベース抽象化レイヤー「PDO」誕生」で廣川類氏が解説しているので,そちらを参照してほしい。

 それでは,プリペアド・ステートメントの実際の動作を見てみよう。

この先は会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら