世界でもっとも普及しているオープンソースデータベースといえばMySQLです。その特長を他のデーターベースと比較しつつ検証してみます。
MySQLとは?
MySQLは、大容量のWebサイトや基幹業務システム、パッケージソフトウェアの構築にもっとも利用されているデータベースです。他のデータベースと比較しても多数の拡張機能があることから、個人のWeb開発者から名だたる大規模組織・企業まで、世界中の幅広いユーザが利用しています。
実際、各業界のリーダーであるYahoo!、Google、Nokia、YouTube、Zappos.comといった企業がMySQLを導入しています。一方、拡張機能が多数ある反面、不足している機能もあるため、今後の拡張が待たれるところです。
MySQLの特徴
MySQLの特徴をそのメリットとデメリットも含めて紹介します。
柔軟性
MySQLは、わずか1MBの容量の組み込みアプリケーションから、テラバイト級の巨大なデータウェアハウスの稼働まで対応するデータベースです。また、対応プラットフォームも、Linux、UNIX、WindowsとさまざまなOSとその各エディションに対応しています。
MySQLはオープンソースのため、データベースサーバに独自機能を追加するなどのカスタマイズも可能となっており、こういったスケーラビリティや柔軟性が、MySQLがトップシェアを誇る大きな要因となっています。
高性能
MySQLの柔軟性を生かして、アプリケーションの用途に合わせたデータベースサーバを構成するといったことが実現できます。このデータベースサーバの構築は、MySQL独自のストレージエンジン機構により実現されています。
例えば、高速なトランザクション処理を必要とするシステムで使用するデータベースや、1日10億件ものクエリを処理するような大容量のWeb サイトのデータベースといった、過酷要件を課されているサービスへも柔軟に対応できます。
その他、MySQLは高速ロードユーティリティ、独自のメモリキャッシュ機構、全文インデックス、その他のパフォーマンス強化機能なども装備されており、要件にあわせたチューニングを可能にしています。
信頼性と堅牢性
MySQLは非常に信頼性の高いデータベースエンジンである点も見逃せません。MySQLのトランザクション機能は、データベースマネジメントシステムにおけるトランザクション処理に求められる要件である「ACID特性」を、完全にサポートしています。
また、無制限の行レベルでのロッキング、トランザクションの分散、読みと書きの相互干渉を防止するマルチバージョントランザクションをもサポートしています。データの完全性を確保する手段として、サーバでの参照整合やデッドロックの速やかな検知といった機能も提供されています。
開発の容易さ
MySQL は高性能なクエリエンジンを備え、非常に高速なデータ挿入が行えるため、高速な全文検索などWebの開発において優位性を発揮します。そのため、大容量のトラフィックが発生するWebサイトの開発において、ほぼデファクトスタンダードといえるデータベースに君臨しています。
Webの開発だけではなく、データウェアハウジングの開発も容易にします。例えば、単体のサーバまたはスケールアウト構成を利用して、テラバイト級にまでスケールアップするといったことも難なく行えるのです。
Webアプリケーションやビジネスアプリケーションの実装を容易にするその他の機能として、メインメモリテーブル、Bツリーインデックス(複数の子ノードを持つ構造のインデックス)、ハッシュインデックス(おもに暗号化に用いられる技術)、最大80%の容量を削減する圧縮アーカイブテーブルといった機能も備えています。
データの保護
データ資産を守り抜くことを重視する各企業も、データを確実に保護するMySQLの優れたセキュリティ機能を信頼し、採用しています。MySQLには、データベースの認証時に、正規のユーザだけがデータベースサーバにアクセスできるように制御する強力なメカニズムが搭載されているためです。ユーザによるデータベースサーバへのアクセスを、クライアントマシン単位でブロックするといった制御も、必要に応じて行えます。
また、接続の安全性を保証するために、SSH とSSLもサポートしています。その他の安全性に関する機能として、適切な情報データのみを特定のユーザにのみ表示させるオブジェクト権限フレームワークや、第三者による機密データの盗み見を防止する、強力なデータ暗号化と復号の機能も用意されています。
フルリカバリや特定時点への復旧を可能にするバックアップ・リカバリユーティリティを活用して、論理バックアップや物理バックアップの作成が可能です。これらのユーティリティは、MySQL やサードパーティソフトウェアベンダから提供されています。
他のデーターベースとの比較
データベースとしてはトップシェアを誇るMySQL以外にも、多数のデータベースマネジメントシステムが存在します。それらとMySQLを比較することでMySQLがなぜ優位に立っているのかが見えてくるはずです。
Microsoft Access
Microsoft社がMicrosoft Windows向けに販売しているRDBMS(リレーショナルデータベースマネジメントシステム)です。Microsoft Accessの特長として、GUIで操作できるため開発者でなくても手軽に開発ができるという敷居の低さが挙げられます。
このため、企業内の事業部などの小単位での開発や個人での開発など、小規模なシステムの開発に向いています。小規模単位の開発に向く反面、大規模プロジェクトには向かないデータベースであると言われています。
Oracle
Oracle社が開発・販売しているRDBMSです。登場したのは1979年という歴史の長いデータベースで、IT環境の変化に都度対応しつつ機能の拡張を続けています。
Oracleはその歴史の長さから他のデータベースとは一線を画する部分があります。それらの違いはメリットともデメリットとも言え、開発するプロジェクトの内容により採用の可否を判断すると良いでしょう。
- 複数のデータベースを1つのサーバ上に作成できる
- データの読み取りは、検索された時点で行われる(読み取り一貫性)
- 行レベルで参照可能なロックをかけて、待ち時間が低減できる
- 管理や開発の効率化のための多彩なツールを備える
- OracleMasterなどのオラクル認定資格がある
- 標準SQL規格に準拠していない点が多いため、特に他のRDBMSへの移行に注意が必要
- 比較的高価である
- トランザクションが自動的に開始する
- DDL(データ定義言語)やDCL(データ制御言語)の実行後にコミットが自動的に(暗黙的に)行われる
まとめ
Microsoft AccessやOracleといった他の代表的なデータベースと比較しつつ、MySQLについて紹介してきました。データベースの採用には正解がなく、開発するプロジェクトや企業の環境により最も適切なデータベースを自身で選ぶ姿勢が大切であるといえます。