【 ここから本文 】
- TOP
- > Topics : データベース
- >
データベース
ソーシャルブックマークに登録 :
印刷用ページの表示
オープンソースDBの成熟度を計る[前編]
各製品の長所と短所を知り、採用・導入のシナリオを検討する
(2007年09月18日)
MySQL http://www.mysql.com/
群を抜く利用実績でLAMPの普及に貢献
安定版:4.1.x、4.0.x、3.23.x/最新版:5.0.x/次期版:5.1、6.0
成り立ち
MySQLは、スウェーデンのマイエスキューエルの創業者が開発したRDBMSで、1995年にバージョン1.0が公開された。その後も開発が続けられ現在に至る。Webアプリケーション構築時の標準的なプラットフォームを意味するLAMP(Linux、Apache、MySQL、PHP/Perl/Pythonの頭文字を並べたもの)に含まれるほど有名である。
技術・機能の特徴
■プラグイン形式のストレージ・エンジン
MySQLではストレージ・エンジンをプラグインの形で利用でき、データの格納方法や処理方法の異なるテーブル・タイプを選択することができる(表1)。現在、MySQLで主に使われているストレージ・エンジン/テーブル・タイプは「MyISAM」と「InnoDB」である。トランザクション処理が必要な場合はInnoDB型テーブル、一時テーブルはMemory型テーブル、それ以外はMyISAM型テーブルを用いるのが一般的だ。それ以外のテーブル・タイプは用途に応じて選択することになる。
| 表1:MySQLに付属するテーブル・タイプ |
MySQLをMyISAMで使うとトランザクション機能などは使えないが、その分、内部処理の仕組みがシンプルで、検索/更新速度が速い。同エンジンは特に、参照の頻度が高いWebアプリケーションで採用されることが多い。
なお、トランザクションをサポートしているInnoDB、そして「Berkeley DB」が共にオラクルに買収されたため、マイエスキューエルは「Falcon」と呼ばれるトランザクション対応の自社ストレージ・エンジンを開発中で、次期バージョンにおいて正式採用される予定となっている。
■GNU GPLと商用のデュアル・ライセンス
MySQLでは、GNU GPLと有料の商用ライセンスであるFPL(MySQL Free Public License)の2種類のライセンスが用意されている。GNU GPLの範囲内で利用するかぎり無料で、MySQLをベースに構築したアプリケーション製品の販売のようなビジネスを展開しても問題とならない。
MySQLを製品やシステムに組み込みたいが、それをGNU GPLとして公開したくない場合は、マイエスキューエルから商用ライセンスのFPLを購入する必要がある。このように、適用形態によっては無料にならない場合もあるので注意が必要だ。
■レプリケーション機能を標準装備
MySQLは、標準でシングル・マスタの非同期レプリケーション機能を備えている(図3)。シングル・マスタのため、マスタは1台に限定され、非同期レプリケーションであるゆえ、マスタからスレーブへのコピーには遅延が生じる。だが、スレーブ台数を増やすことにより手軽に参照系のスケールアウトが行える。Webシステムでは、構築時は小さく始めて、その後、徐々に拡張するスタイルが多いが、その際に便利な機能だ。
| 図3:MySQLに備わる、シングル・マスタ非同期レプリケーション機能 |
■SQL独自拡張
MySQLには、便利な独自拡張がいくつかあり、それを前提としてMySQLを採用しているアプリケーションが多く存在する。以下はその主な例である。
●DDL(データ定義言語)の独自拡張
TIMESTAMP:行の挿入・更新日時を自動的に反映させる
AUTO_INCREMENT:手軽にユニークな連番を取得し、格納できる
●DML(データ操作言語)の独自拡張
REPLACE:行がなければINSERT、行があればREPLACEする機能。
INSERT:1行に複数のINSERTする値を記述できるバルク・インサート機能。PostgreSQLにおいてもバージョン8.2から実装されている
最新版/次期版の強化ポイント
MySQL 5.0.0の登場は2003年12月で、2005年10月の5.0.15で安定版(stable)となる(同DBではアルファ版からバージョン番号がつき、stable〈GA〉が通常のリリースに相当する)。本稿執筆時点(2007年5月)での最新バージョンは5.0.41だ。5.0.27以降、MySQLは「Community Server」と「Enterprise Server」の2系統に分かれた形でリリースされている(コラム「Community ServerとEnterprise Server」を参照)。
次期バージョンの5.1では、更新可能なビュー、トリガの拡張、フル・アウタージョイン、制約(InnoDBでは3.xで対応済み)、クラスタリング、パーティショニング、プラグイン形式のストアド・エンジンAPI、行ベースのレプリケーションなど、これまで商用DBと比較して不足していたエンタープライズ系の機能が数多く備わることとなる。特にサーバ・サイド・プログラミング機能が強化され、これまで、MySQLに適用することが難しかったビジネス・ロジックをサーバ・サイドに置くようなシステムへの対応が可能になっている。
選ぶ理由と選ばない理由
MySQLを選ぶ有力な理由としては、WebのバックエンドDBとしての実績・事例が非常に豊富であること、レンタル・サーバなどで容易に使用可能であること、「XOOPS Cube」など人気の高いWebアプリケーションの動作前提DBに採用されていることなどが挙げられる。
一方、選びにくい理由には、適用形態によりFPL商用ライセンスとその料金が必要になること、ビュー、ストアド・プロシージャ、トリガのサポートについてはまだ日が浅いこと、そして、Berkeley DB/InnoDBがオラクルに買収され、自前のストレージ・エンジンであるFalconの正式リリースがまだなされていないことや、Community版とEnterprise版が分離されたことなど不確定な要素が増えた点が挙げられるだろう。
Column
Community ServerとEnterprise Server
MySQLは、2006年10月より有料版の「MySQL Enterprise」と無料版の「MySQL Community Server」に分岐した。
企業向けのMySQL Enterpriseは安定指向の製品で、ライセンスはGNU GPLと商用ライセンスが採用される。バイナリは有償で再配布はできない。製品本体にインストール/コンフィグレーション・ウィザード、「MySQL Network Monitoring」「Advisory Service」などが付属する。また、毎月のソフトウェア・アップデートと、四半期ごとのサービス・パックが提供される。
一方、Community Serverは多くの機能を実装していくことが重視される。ライセンスはGNU GPLを採用し、バイナリを無料で再配布することができる。
各製品の長所と短所を知り、採用・導入のシナリオを検討する



