- 「もっと可用性を高められたら……」
- 「複数のサーバーで同時に更新と参照を行えたら……」
- 「既存のアプリともっとかんたんにSQLの互換性を保つことができたら……」
大規模化するにつれ、高いサービスレベルが求められつつあるサーバーサイドアプリケーションにおいて、「開発や管理をもっと効率化したい!」と思う方は少なくないはず。そのような悩みを一手に解決する手段の1つがMySQL Clusterです。
MySQL Clusterは、多くの現場で使われているデータベースであるMySQLをクラスタ化して利用するためのソフトウェア。2012年2月にリリースされたバージョン7.2において、以下の2つの理由で俄然注目を浴びることとなりました。
1.ジョインが70倍も高速化
データベースではジョインの操作が不可欠ですが、MySQL Clusterではデータをとりにいくたびにネットワーク通信が必要になるため、ジョインのパフォーマンスが出ないのが悩みのタネでした。
しかし、“分散ジョイン”とも言うべきAQL(Adaptive Query Localization)という新しいアルゴリズムを搭載したことで、なんと従来の70倍も高速にジョインができるようになったのです。
2.人気の高いmemcached APIをサポート
ここ最近、大量のデータを高速に扱う手段として「NoSQL」という言葉を耳にするようになりましたが、じつはMySQL Clusterは元々「NDB API」というNoSQLインターフェイスを備えていました。RDBMSとNoSQL、両方のインターフェイスを持つソフトウェアを「NewSQL」と呼ぶこともありますが、MySQL Clusterはその先駆けでもあります。MySQL Clusterならば、同じデータに、SQLでもNoSQLでもアクセスできるのです。
今回のアップデートでmemcached APIをサポートしたことで、既存の開発経験を活かせるようになりました。さらに、データをRDB上のデータと同期する必要もなく、memcachedサーバーが停止してもデータが消える心配がないというメリットも得られます。
そのような魅力を秘めたMySQL Clusterですが、新しい技術につきものなのが「本がないのでよくわからない」という問題。しかし今回、MySQL界で名高い奥野幹也氏が、バージョン7.2のリリースから間をあまり置かないタイミングで『MySQL Cluster構築・運用バイブル ~仕組みからわかる基礎と実践のノウハウ』を書き下ろしてくださいました。当然、最新のバージョン7.2に対応。サブタイトルにあるように、ネット上のマニュアルではわかりにくい原理的なところから、丁寧にわかりやすく解説してくださっています。
ちなみに本書を読むにあたっては、MySQLの仕組みなどの前提知識があると、より理解が深まります。そこでおすすめなのが、奥野氏が書いた『エキスパートのための MySQL[運用+管理]トラブルシューティングガイド』を併読すること。あわせて読めば、知識がいっそう確かなものとなるでしょう!