ミクシィ、楽天が採用するRDBMSの進化形
MySQL ABのディレクターが明かす「MySQL 5.1」の魅力
オープンソースソフトウェアのRDBMS導入に抵抗感を持つ企業は依然として多いが、機能的には着実に商用製品に近づきつつある。ここでは、Web系企業の業界標準となってきたMySQLの最新バージョンの魅力を紹介する。
企業システムにおけるオープンソースソフトウェア(以下、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の開発元である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 5.0では、データ量の増大でDBサーバの応答性能が悪化した場合、元のテーブルを期間やユーザーIDなどの値で分割し、それらを複数のDBに分散させるスケールアウトが一般的だ。ただ、分散するDBを制御するアプリケーション側に複雑なロジックを実装しなければならず、加えてDB構成の変更が常にアプリケーションへ影響する点が厄介だ。
その点、MySQL 5.1のパーティショニング機能は、アプリケーションに手を入れることなく1つのDB内でテーブルを分割できるため、同じマシンを使っていてもおのずと応答性能が向上する。つまり、データ量が増えてもパーティションのチューニング(追加・再分・統合)、あるいはCPUやメモリの増強によるスケールアップで対処できるのだ。
開発・保守が容易なパーティショニングによる拡張性の確保は、ジェダイたるWeb系企業よりも一般企業のシステムに向いている。エイカー氏は、「1つのDBに複数のストレージエンジンを搭載できるMySQLは(※2)は、一般企業においてデータ分析によく利用されています。しかし、パーティショニング機能の搭載により、大規模なDWHとしても使われていくと見ています」と今後を予想する。
※2 ストレージエンジンとは、ディスクへ実アクセスを伴うデータ処理を担うモジュール。MySQLでは標準で「MyISAM」「InnoDB」などが用意されているほか、サードパーティ製品も追加できる。ストレージエンジンごとに得意な処理形態があり、テーブル(アプリケーション)ごと割り当てられる。
テーブルサイズが大きいDWHでは、レコード件数が何百万件、何千万件となり、汎用的なRDBMSをDBエンジンに適用するのは難しいとされる。だがそこは、もともと参照系の処理性能に定評のあるMySQL。パーティショニング機能の追加により、どれほどの規模のDWHにまで対応できるのか。今後登場してくるであろう各種の検証・導入リポートが待ち望まれるところだ。
ディスクベース対応で信頼性が増したクラスタ機能
MySQL 5.1でもう1つ注目したいのが、DBサーバの可用性を高めるクラスタリング機能「MySQL Cluster」の機能強化である。
MySQL Clusterの仕組みは複雑なため詳細は下図を参照してほしいが、要はアクティブ・アクティブのクラスタ構成により、負荷分散と高可用性を同時に満たしている。大きな特徴としては、テーブルおよびインデックスをディスクよりも高速なメモリ内に搭載する「インメモリ型」という点だ。そして通常は、秒単位で更新ログ、分単位でデータイメージをディスクへ保存する。
ただ、メモリ内のデータは電源が切れると揮発するため、仮に全ノードが一斉停止した場合、ディスクに更新ログが保存されていないデータは消失してしまう。可用性(データ保護)という面では多少の不安があるとともに、大容量のメモリを搭載しなければならないのも難点といえば難点である。
それがMySQL 5.1からは、ディスク内のデータをベースにしたクラスタ構成が可能となった。エイカー氏は、「もともとMySQL Clusterは通信業界向けに開発されたものです。(高可用性と性能という意味では)性能をより重視してきましたが、一般企業ではそこまでの性能は必要なく、(可用性がより高くメモリ容量も少なくて済む)ディスクベースの方がふさわしいと思います」と、ユーザー層を広げるための機能強化であることを強調する。
また、ディスクベースといってもインデックスは従来通りメモリ内に保存。アクセスの多いテーブルはインメモリ型も選べるので、ディスクの入出力を減らすようチューニングできる。「実際はインメモリ型とディスクベースのハイブリッドなので性能はそれほど落ちないはずです」とエイカー氏は話す。
OracleやMicrosoft SQL Serverにもクラスタリング機能はあるが、最上位版でしか使えない。また、信頼性(価格)の高い共有ディスクやクラスタリングソフトが別途必要になるなど制約も多い。その点、MySQLは標準提供されるストレージエンジン「NDB Cluster」を適用するだけでよい。コスト的にはかなり優位である。なお、MySQL 5.1からはクラスタ間のレプリケーション機能にも対応する予定で、遠隔サイトを利用した災害対策にも使えそうだ。
以上、MySQL 5.1に搭載される代表的な新機能のごく一部を紹介したが、このほかにもスケジュール登録をした各種クエリを自動実行する「イベントスケジューラ」、マスタ・スレーブ間のデータ同期をSQLベースではなく物理データ(値)で行う「行ベースレプリケーション」など、操作性、信頼性を高める多くの新機能が搭載される見込みだ。
確かに、一般企業ではオープンソースのRDBMSを採用することに抵抗感があるかもしれない。しかし、機能面では商用のRDBMSに近づきつつある。オープンソース製品でネックとなるサポート面も、MySQL ABの日本法人設立により安心感が出てきた。同法人は現在、2人のサポートエンジニアを抱え、2008年より日本語でのヘルプデスクも設置する予定だ(現在は英語のみのサポート)。
「いきなり既存のRDBMSを置き換えるのではなく、まずは何か新しいアプリケーションを開発する際にMySQLを採用し、その実力を試してほしい」と語るエイカー氏だが、その価値は十分にあるだろう。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
新着ホワイトペーパー PR
-
市場調査・トレンド
[AvePoint Japan株式会社] SCS評価制度の死角は“SaaSの中” クラウド標準機能では届かない領域とは? -
製品資料
[デジタルサーカス株式会社] 5分で分かる、「オープンソースCMS」比較ガイド -
製品資料
[デジタルサーカス株式会社] 1つのアプリを各国で運用 多言語モバイルアプリを簡単に開発・導入できる方法 -
製品資料
[ニュータニックス・ジャパン合同会社] 複雑化するKubernetes運用、VMとコンテナの二重管理を解消する方法は? -
市場調査・トレンド
[アルプス システム インテグレーション株式会社] 急増する高度なフィッシング詐欺 先回りしてブロックするには何が必要?
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
Microsoft 365導入後も稟議は「Excelをメールで回覧」 承認が止まる理由
-
2
米国防総省で300万人分の個人情報が流出 その「意外な原因」と教訓
-
3
「Microsoft 365」が乗っ取られる MFAを破る“本物の画面”の恐怖
-
4
PHPはそもそも必要か? 脆弱性で問われる自社サイト安全性と保守負担のバランス
-
5
PHP脆弱性「PHP2Shell」で2260万件に影響 情シスの緊急チェックリスト
-
6
金融・通信で情報漏えいが続出 IPAとJPCERT/CCが情シスに求める緊急点検
-
7
「年1回の外部診断」が限界に 大手小売が脆弱性管理を内製化・一元化した方法
-
8
京王電鉄・東京メトロの被害から学ぶ境界防衛 ITの侵害はどこまで波及するか
-
9
PHP2Shellの「事前の情報流出」でパニックに パッチ公開を巡る“混乱劇”
-
10
Googleの業務向けAIエージェント「Gemini Agent」が登場 しかし課題は山積み
ホワイトペーパーランキング PR
-
1
AI駆動攻撃にどう対抗する? 超速の攻撃からエンドポイントを保護する方法
-
2
最速72分でデータが流出? 最新の脅威トレンドや侵入手法から分かった防衛策
-
3
経験豊富な即戦力人材に直接アプローチできる、「攻めの採用」への転換術
-
4
2026年のサイバーセキュリティには何が必要か? 最新データに学ぶ傾向と対策
-
5
「IT史に名を残すシステム障害」8選
-
6
「EDR」選定ガイド:比較・検討フェーズで整理すべきポイントを解説
-
7
10G回線の真価をフルに享受するには? 導入前にチェックしたいポイント
-
8
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
-
9
MDMだけでは防げない? Appleデバイスに潜む5つのセキュリティギャップ
-
10
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー