開発●米Sun Microsystems
URL●http://www.mysql.com/

「ソフトウエアを作る環境を楽しくするお役立ちフリーソフト」を集めて,1日1本のペースでご紹介しています。今回は世界で最も普及しているオープンソースのリレーショナル・データベース管理システム「MySQL」です。

 「MySQL」は世界で最も普及しているオープンソースのリレーショナル・データベース管理システム(RDBMS)です。処理速度が優れている点に定評があります。日本最大のソーシャル・ネットワーキング・サービスである「mixi」など,大規模システムでの採用事例も少なくありません。Webサイト構築によく使われるオープンソース・ソフトウエアのセットである「LAMP(Linux,Apache,MySQL,PHP)」に含まれていることでも有名です。

 かつては「速いだけで使いにくい」と評されることもありましたが,バージョン5.0からはストアドプロシジャやSQL関数,トリガー,ビュー,カーソルといった,アプリケーション開発を便利にする機能を搭載しました。使い勝手の面でも商用RDBMSに近づいています。

 MySQLの最大の特徴は,SQL文を処理する部分とデータの格納を担当する部分(ストレージ・エンジン)が分かれており,複数のストレージ・エンジンを使い分けられる点です。現時点で,MySQL用のストレージ・エンジンは,サードパーティ製やオープンソース・コミュニティで作られたものを含めると10種類以上存在します。それぞれ性格が異なります。MySQLの能力を引き出したければ,ユーザーが目的に合わせて適切なストレージ・エンジンを選択する必要があります。

 開発元のスウェーデンMySQLは「MyISAM」というストレージ・エンジンを標準で提供しています。このエンジンは高速に動作する一方,トランザクションに一切対応しません。最近よく使われているのが「InnoDB」というエンジンです。このエンジンはMyISAMとは逆の性格を持っています。トランザクションなどの機能を備える一方,速度は一般にMyISAMに劣ります。「Memory」というエンジンは,データをすべてメモリー上に展開して処理をするため,とても高速です。ただ,データをハードディスクに保存する前にコンピュータが止まってしまうと,データが消えてしまうことがあります。

 例えば,「データの書き換えが頻繁に発生し,データ同士の整合性を保たなければならない」といった用途では,トランザクションが必要になるため,InnoDBを選ぶとよいでしょう。データの書き換えがほとんど発生せず,主にユーザーから参照されるだけのデータを格納するなら,MyISAMが適しています。

 2006年にはMyISAMとInnoDBのいいとこ取りをしたようなオープンソースのエンジンが登場しました。米Solid Information Technology(http://www.solidtech.com/)が開発した「SolidDB」です。トランザクションや行レベル・ロックに対応しながら,十分高速に動作するエンジンです。今のところ,SolidDBはMySQL本体に入っていないので,試すにはSolidのWebページからダウンロードしなければなりません。現在のところ評価は定まっていませんが,将来的に有望なエンジンといえるでしょう。

MySQL用の様々な管理ツール

 RDBMSを使うときには,管理ツールの使い勝手も気になるところです。MySQL本体はコマンドプロンプトから操作する管理ツールしか備えていません。初心者の方がそのまま使うのはちょっと難しいでしょう。ただし,GUI管理ツール群「MySQL GUI Tools for 5.0」が提供されています。このツールは「MySQL Administrator」と「MySQL Query Browser」という二つのツールをセットにしたものです。MySQL Administratorは,MySQLサーバーの起動,停止やユーザー設定,データベース・テーブルの作成などの管理をGUIの画面で行えるツールです。日本語表示には対応していませんが,無料とは思えないほど使いやすいツールです。

 一方,MySQL Query Browserは,SQL文の作成,発行,結果の確認,デバッグをGUI画面で実現するツールです。「SELECT」や「FROM」といったSQL文の要素を表すアイコンと,テーブルの要素を表すツリーをビジュアルに表示し,アイコンとツリーをクリックしていくだけでSQL文を組み立てられるようになっています。また,このツールもテーブルをビジュアルに作成する機能を備えています。SQL文に慣れてくると,コマンドプロンプトでの手入力も苦にならなくなりますが,SQLを学習している段階では,こういったツールが役に立つでしょう。

●MySQLの主なストレージ・エンジンとその特徴
●MySQLの主なストレージ・エンジンとその特徴

●GUI管理ツールMySQL Adminstrator   ●SQL文を実行できるMySQL Query Browser
●GUI管理ツールMySQL Adminstrator   ●SQL文を実行できるMySQL Query Browser