トップ> コラム> MySQL Clusterを調べてみた

MySQL Clusterを調べてみた

2009年09月07日

システム創造事業部
アーキテクト
赤木 邦雄
akagi.jpg


弊社のプロジェクトで、利用頻度の多いデータベースはOracleなのだが、
最近、実際のプロジェクトでOracleを使用した際に、あまりいいサーバ構成
でないケースにおいて、Oracle本来の性能が発揮されないことがあった。

そこで、同様なケースのとき、MySQL Clusterではどのようなパフォーマンス
になるのか調べてみることにした。

興味があった特徴は以下の通り。

  • クラスタリングソフトが不要
  • 負荷分散装置・共有ストレージが不要
  • 動的なスケールアウト
  • 分散型インメモリデータベース
  • 1秒以内のフェイルオーバー

仕様上は、高速に動作しそうだったため、実際どうなるのか試してみることにした。

まず、
・VMWareで、仮想マシンを用意。
・CentOSをインストール。

次に、
・MySQL Clusterをインストール。
・管理ノードを1つ、データノード/SQLノードを2つ作成。
・2つのMySQLが同時に動作している状態。

そして、
・1つのMySQLで、テーブルを作成し、データを登録してみる。

すると、
・もう1つのMySQLにもテーブルが作成され、同じデータが登録されている。

うまくインストール出来たようだ。


よし、
とりあえず、1セッション、1レコード、1トランザクションで、
大量にデータを登録してみた。

10万件のデータを登録。133秒


普通のMySQLでも同じ処理を試す。

10万件のデータを登録。48秒

# insert処理で、約2.8倍の性能差があった。


これは2つのSQLノードへの負荷分散をしていなかったり、
チューニングしていないので、メモリをちゃんと使えていなかったり、
ネットワークの状況に影響されたりと、MySQL Clusterの性能が出る
ようにしてあげれば、実プロジェクトで利用可能な状態に持っていく
ことが可能だろう。


今日のところは、簡単な動作確認をした程度だが、
引き続き、実プロジェクトで適用可能かどうか調査を
進めたいと思う。