図1●MySQL 5.0 の機能(MySQL ABの資料より引用)
図1●MySQL 5.0 の機能(MySQL ABの資料より引用)
[画像のクリックで拡大表示]
写真1●PHPの状況を確認する画面
写真1●PHPの状況を確認する画面
[画像のクリックで拡大表示]
写真2●コンポーネントの管理ページ(囲み部分がMySQLドライバ)
写真2●コンポーネントの管理ページ(囲み部分がMySQLドライバ)
[画像のクリックで拡大表示]

 10月24日にMySQL 5.0 GA版(10月27日時点で5.0.15)がリリースされ,晴れて正式リリースとなった。期待をこめて,リリースしたばかりのMySQL 5.0の機能を再確認する。

MySQL 5.0 の機能

 MySQL AB社では,MySQL 5.0を図1のようにまとめて解説している。

 MySQL 5.0には,これまで他社の商用データベースと比較して不足していた機能が数多く搭載された。代表的な新機能を表1にまとめる。

表1●MySQL 5.0の新機能

項目 概略
開発者向け機能
Stored Procedures ストアドプロシージャを定義可能
Triggers トリガを定義可能
Functions 関数を定義可能
データプロテクション Views ビューを定義可能
Distributed Transactions トランザクション機能の拡張
2フェイズコミットをサポート
Pluggable Storage Engine Archive データを圧縮しながら格納するデータベースエンジン
Federated 他のサーバーで管理されているテーブルを配下のテーブルとしてアクセス可能

 MySQL 5.0のCPUとOSの対応状況は表2のようになっている。

表2●MySQL 5.0のCPUとOSの対応状況

対応CPU 対応OS
Intel x86, IA32, IA64
AMD Opteron
IBM PowerPC
Sun SPARC
Linux: RedHat, SuSE, Fedora, Debian
Unix: Solaris, HP-UX, AIX, SCO
BSD: FreeBSD
Apple: Mac OS
Windows: 2000, 2003, XP
Novell: NetWare

 以下,MySQL 5.0の新機能に関して,項目別に解説する。

開発者向けの機能

 これまで,MySQLは,ストアドプロシージャに代表される,サーバーサイド処理をサポートしていなかった。一般的に,バッチ処理などが多い事務処理系の業務には不向きとされていた。OracleやPostgreSQLとの比較検討で,この項目によって敗れることも少なくなかった。

 MySQL 5.0では,ANSI SQL2003に準拠したストアドプロシージャ,トリガ,関数に対応しており,サーバーサイドのデータベース処理が実行可能となった。

 ストアドプロシージャに関しては,MySQLウォッチ第13回で紹介している。トリガに関しては,MySQLウォッチ第16回を参照してほしい。

データプロテクション

 MySQL 5.0は,ビューも対応可能となった。これにより,SQLステートメントで抽出したデータを別名で登録し,テーブルと同様に取り扱うことが可能だ。不必要な列へのアクセスをなくすなど,セキュリティ面からも有用な機能だ。ビューに関しては,MySQLウォッチ第16回を参照してほしい。

Pluggable Storage Engine

 MySQLは,複数のストレージエンジン(データベースエンジン)を搭載していることが大きな特徴である。MySQL 5.0では,これまでのストレージエンジンに加えて,ArchiveとFederatedという2つのストレージエンジンがサポート可能になった。また,今後もいくつかのストレージエンジンが搭載される予定だ。

 ストレージエンジンに関しては,MySQLウォッチ第20回を参照してほしい。

プロダクト名の変更

 これまで,商用版(商用ライセンス)は,MySQL Pro(トランザクション機能あり)とMySQL Classic(トランザクション機能なし)の2種類となっていた。MySQL 5.0では,MySQL 5.0 Pro Certified Server に統一された。クラスタリングに対応版は,これまでどおりMySQL 5.0 Clusterと呼ぶ。

 また,GPLライセンスに基づく無償版は,MySQL 5.0 Community Editionと呼ぶようになった。

MySQLに対応したPHP環境構築が簡単に行える Zend Coreシリーズ

 この内容は,PHP Watchの範疇になるのかもしれないが,PHP環境構築とMySQL接続環境の設定を簡単に行うことができる無償プロダクトがあるので紹介したい。

 私が所属しているZend社では,コンパイル済みのPHPバイナリを「Zend Core シリーズ」提供している。現在,「Zend Core for IBM 日本語版」がダウンロード可能であり,近々に「Zend Core for Oracle 日本語版」がダウンロード可能になる。

 「Zend Core シリーズ」は,PHP環境を構築するだけでなく,PHP環境の監視および管理する機能も持っている。そのため,PHPユーザーにとっては,手軽にPHP環境を構築し,運用することが可能だ(写真1)。

 表3に,「Zend Core シリーズ」の内容を整理した。

表3●Zend Core シリーズの概要


Zend Core for IBM Zend Core for Oracle
PHPバイナリ(現時点でPHP 5.0.5)
インストーラ
コンポーネント設定
コンポーネントアップデート
ODBC ドライバ

DB2 Client Runtime

Cloudscape(Pure Java データベース)

Oracle OCI8 ドライバ

MySQLドライバ

 このように「Zend Core for IBM 日本語版」は,IBM環境のデータベースに対応している。また,「Zend Core for Oracle 日本語版」は,OCI8ドライバを収録しており,簡単にOracle 10gや9iに接続できる。

 なぜ,ここで,「Zend Core シリーズ」を紹介するかというと,これらは標準でMySQLへの接続環境を搭載しているからだ。そのため,「Zend Core シリーズ」を用いるとMySQLに対応するPHP環境を簡単に構築することができる(写真2)。

 「Zend Core シリーズ」は,これらのコンポーネントをネットワークを通じてアップデートする機能も搭載している。MySQLドライバが更新された場合にもGUIを通じてアップデートが可能だ。

 MySQL 5.0は,これまで当コラムで紹介した機能のほとんどが実装され正式リリースとなった。一部には,実装されていない機能もあるが,これからバージョンを重ねることによって,それらも実装されるだろう。特にPluggable Storage Engineというコンセプトが明確になり,新たなストレージエンジンが随時追加される模様だ。

■著者紹介 佐藤栄一(さとうえいいち)
ゼンド・ジャパン株式会社 アーキテクト MySQL担当。PHPのコア技術者が設立したイスラエルZend Technologiesと提携関係にあり,Zend製品の販売,サポートおよびLAMPおよびLAPPによるシステム構築を推進しているMySQL ABのリセーラとしてライセンス,サポート,コンサルティングの提供を行っている。