検索
特集/連載

MySQL ABのディレクターが明かす「MySQL 5.1」の魅力ミクシィ、楽天が採用するRDBMSの進化形

オープンソースソフトウェアのRDBMS導入に抵抗感を持つ企業は依然として多いが、機能的には着実に商用製品に近づきつつある。ここでは、Web系企業の業界標準となってきたMySQLの最新バージョンの魅力を紹介する。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

 企業システムにおけるオープンソースソフトウェア(以下、OSS)の活用が叫ばれて久しい。一部では大規模な基幹システムへの採用事例もあるが、全般的に導入は進んでいない。特に、企業システムのエンジンとなるRDBMSとなると商用製品がほとんどである。

 しかし、ミクシィや楽天をはじめとするWeb系企業の多くでは、RDBMSを含めOSSを中心にシステムが構築されている。せっかくの公共財である。一般企業においても利用できる場面がないか、いま一度目を向けてみてはどうだろう。そこで注目したいのが、Web系企業ではRDBMSの業界標準となってきたMySQLである。

 処理性能こそ高いが、商用製品に比べると機能的に劣るとされてきたMySQLだが、ここにきて急速にキャッチアップしようとしている。2008年に登場予定の最新バージョン「MySQL 5.1」ではその機能差が改善される見込みで、データウェアハウス(以下、DWH)としての可能性も示唆している。OSSながら、エンタープライズを指向するRDBMSともいえるだろう。

機能面での見劣りを克服し始めたMySQL

 RDBMSのMySQLは、いわゆるLAMP(Linux、Apche、MySQL、PHP/Perl/Python)構成の一部としてWebシステムに採用されるケースが増えている。日本では、同じOSSのRDBMSでもPostgreSQLの方が普及しているといわれるが、ミクシィ、楽天といった国内の有力なWeb系企業がMySQLを採用するなど、注目度が増している(2007年9月12日掲載の「mixiの生みの親“バタラ氏”が語るMySQLの意外な利用法」参照)。

 コンシューマー系のWebシステムは、トラフィックの大部分が参照系だ。MySQLがWebシステムで多用されてきたのは、OSSという点に加え、この参照系の性能が比較的優れているためだ。また、こうしたWebシステムのアプリケーション開発で使われるPHP、Perl、Rubyなどの軽量な言語との相性の良さも採用に拍車を掛けている。

 ユーザーがMySQLを導入する選択肢としては、新機能の実装を重視した「MySQL Community Server」と安定性を重視した「MySQL Enterprise Server」の2つがある(SIer向けにはOEM版が別途用意されている)。MySQL Community Serverのソースコード、バイナリはともにGPL(GNU General Public License)で配布されているが、MySQL Enterprise Serverでバイナリを得るには、年間保守やツールをパックにした「MySQL Enterprise」を購入する必要がある。

 確かにMySQLは従来、OracleやMicrosoft SQL Serverなどの商用RDBMSと比べ、信頼性や拡張性、操作性などで見劣りする面があった。そのため、Web系ではない一般企業にとっては少し縁遠い存在だったかもしれない。しかしそれも、2008年に登場予定の「MySQL 5.1」で随分と変わる可能性がある。


MySQL AB アーキテクチャ・ディレクター
ブライアン・エイカー氏

 MySQLの開発元であるMySQL ABでアーキテクチャ・ディレクターを務めるブライアン・エイカー氏は、次のように話す。「ミクシィや楽天のようなWeb系企業は、『スター・ウォーズ』の“ジェダイ”のようなもの。自らの武器となるライトセーバーを自分の力でビルドします。たとえMySQLの機能が不足していてもレベルの高い技術者を多く抱えているため、アプリケーションへの機能実装やほかのオープンソースコンポーネントとの組み合わせでカバーしてしまうのです。また、彼らはそうした開発スタイルを好んでいるとも思います。ただ、そうではない一般の企業にも使ってもらえるよう、MySQLは機能を拡張し続けているのです」

パーティショニングでよりDWHに適応

 MySQLは、2005年10月に安定版がリリースされた現行の「5.0」からストアドプロシージャやトリガに対応。SQLのサポートでは商用のRDBMSにかなり近づいたといえる。製品候補版が2007年9月にリリースされ、2008年に安定版が登場する見通しのMySQL 5.1では、一層機能を充実させてくる。その目玉となるのが、「パーティショニング」機能の搭載である。

 パーティショニングとは、1つのテーブルを列値や行値の条件で論理的に区分けして管理することだ(※1)。つまり、データ全体ではなく、細かくパーティショニングされたテーブルを対象にクエリを実行するため応答速度が速い。膨大なレコードを持つテーブルも意に介さないというわけだ。

※1 MySQL 5.1では、カラム値によってテーブルを行単位で区分けする「水平パーティショニング」のみに対応。Range/List/Hash/Keyという4つの関数タイプで区分けできる。

 OracleやMicrosoft SQL Serverなどは従来よりパーティショニング機能をサポートしており、MySQLもそれに追い付いた格好になる。エイカー氏は、「MySQLは従来、(処理能力を高める方法として)廉価なマシンを連ねるスケールアウトを提唱してきました。しかし、5.1からはパーティショニング機能の追加によりスケールアップも可能で、最新マシンのスペックを存分に生かせるのです」と話す。

関連ホワイトペーパー

MySQL | RDBMS | OSS | LAMP


*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る