3.MySQL Enterprise Serverとの違い

3.MySQL Enterprise Serverとの違い

 オープンソースデータベースを扱ったことがある経験者にMySQLといえば、大抵はMySQL Enterprise Serverを想像し、MyISAMやInnoDBといったストレージエンジンを利用した単一ホスト上に構築するデータベースを思い浮かべるでしょう。しかしながら、MySQL ClusterはMySQL Enterprise Serverの製品ラインとは異なり、NDB Clusterという特殊なストレージエンジンを利用し複数のノード間でデータをやり取りするまったく異なるアーキテクチャーを持つクラスタデータベースです。ここからは、おなじみの世界でもっとも普及している、オープンソースデータベースMySQL Enterprise Serverと比較しながらMySQL Clusterの特徴を紹介していきます。

 MySQL Enterprise Serverに含まれるMyISAMや、InnoDBといったストレージエンジンを利用する際には、ディスク上に作成するファイルや表領域、またはログファイルの物理的なサイズや配置、またはインデックスや表データをどのようにメモリに乗せるかといった設計を行うことが大切です。しかし、MySQL Clusterを利用する場合は、さらにノード間を結ぶネットワークや、MySQL Clusterが持つデータの格納、検索の仕組みを含めた可用性や性能を考慮しなくてはなりません。

4.可用性や性能の留意点

 例えば、MySQL Enterprise Serverでは単一のホストが管理するディスク上にファイルを配置しますが、MySQL Clusterでは水平パーティショニング技術を用いデータを複数のノードに分散配置します。上記の図2では、4つのデータノードを2ノードずつのノードグループ1、2に分け、さらに各データノード内のデータの複製数を2として構築したMySQL Clusterに、あるテーブルを作成した場合のデータ格納イメージを4つの色を利用し示しています。

 図左のテーブルに含まれる行のおよそ半分、つまりオレンジで示すパーティション1とグリーンで示すパーティション2に相当する行は、図右のノードグループ1に配置された1つ目のホストにオレンジで示すパーティション1(P1)のプライマリデータとして、グリーンで示すパーティション2(P2)がセカンダリデータとして、またノードグループ1内の2つ目のホストには反対にオレンジのP1がセカンダリデータ、グリーンのP2がプライマリデータとして格納されます。

 MySQL Clusterでは、このように各ノードグループ内のデータを冗長化して維持することで、1つのデータノードのプロセス、ホスト、通信経路に障害が発生した場合でも、サービスを継続できるように設計されています。

 また、MySQL ClusterはプライマリキーにHash関数を用いてデータを格納するノードを決定します。このため、プライマリキーを利用しHashインデックスをうまく活用できる問い合わせであれば、非常に早くデータを特定し応答を返すことができます。しかしながら、プライマリキーをうまく利用できない問い合わせや、テーブルの一定範囲をスキャンするような問い合わせはHash関数を用いた特定行のルックアップと比較してネットワーク上の通信が多く発生し、思うような性能が発揮できないことがあります。

 これはインデックスや表データをメモリまたは、ファイルシステムキャッシュに乗せ高速処理するMyISAMやInnoDBストレージエンジンと異なり、MySQL Clusterはネットワークを介した通信を行いながらデータを格納、検索しクラスタ構成を維持していることも要因の1つとなっています。このネットワークを介した通信処理には、MySQL Clusterが利用するネットワークの帯域幅を広げる、またはレイテンシの低いアーキテクチャーを持つ通信インターフェースを用いて通信速度を速めることも性能向上の有効な手段となります。

 このほか、MySQLの各ストレージエンジンはSQL文の処理においても固有の特徴を持ちますが、MySQL Clusterも例外ではありません。NDB Clusterはトランザクションをサポートしますが、すべてのトランザクションレベルをサポートするInnoDBと異なりサポートするトランザクション分離レベルはRead Committedのみです。また、外部キーをサポートするInnoDBと異なり、NDB Clusterは外部キーをサポートしないため、必要な場合は、別途、トリガーを用いて実装するなどの対応が必要となります。

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30