1. TOP
  2. レポート・ライブラリ
  3. NewSQLデータベースとは何か - RDBMSとの違いと活用指針 -


ITR Review

コンテンツ番号:
R-225012
発刊日:
2025年1月7日

NewSQLデータベースとは何か

RDBMSとの違いと活用指針

著者名:
平井 明夫
NewSQLデータベースとは何かのロゴ画像

NewSQLデータベースは、RDBMSとの一定の互換性を保ちつつ、RDBMSの弱点であったスケールアウトによる拡張を実現するデータベースとして注目されている。本稿では、RDBMSとNewSQLデータベースの違いを明確にしたうえで、NewSQLデータベースを効果的に活用するためのポイントを解説する。

RDBMSとNewSQLデータベースの違い

スケールアウトとは、システムの処理能力を増強する際に、サーバ単体の性能を向上させる(スケールアップ)のではなく、サーバの数を増やすことで対応する方法である。稼働中のサーバを停止させずに実施することができるため、スケールアップに比べサービスの停止時間を短くすることができるというメリットがある。スケールアウトは、特にインターネット・アプリケーションのような24時間サービスを求められるシステムでは有効だが、RDBMSのスケールアウトには以下に述べる制約があるため、アプリケーションのデータベース層においてはスケールアップが一般的となっている。

RDBMSでのスケールアウト方法には、レプリケーションとシャーディングの2つがある(図1)。

図1.RDBMSのスケールアウト方法

図1.RDBMSのスケールアウト方法
出典:ITR

レプリケーションは、データベースのコピーを複数のサーバに配置することでスケールアウトを実現する。元となるデータベースは”マスター”、そしてコピーされたデータベースは”レプリカ”と呼ばれ、マスターに対して行われたデータの更新がレプリカに反映される。レプリケーションでは、データの読み込みは複数のサーバに負荷が分散されるが、データの書き込みはマスターのみに行われるためスケールアウトにより得られる効果はない。

一方、シャーディングは、データベースを複数の”シャード”に分割し、それぞれを別のサーバに配置することでスケールアウトを実現する。シャーディングでは、データの書き込みについてもサーバ間での負荷分散が可能になるが、分割したサーバが1台でも停止するとデータベースが利用できなくなり、可用性が失われる。

これに対して、NewSQLデータベースでのスケールアウトは、レプリケーションとシャーディングを組み合わせることで実現する(図2)。データベースを複数のシャード(リーダ)に分割し分散配置したうえで、シャードごとに他のサーバにレプリカ(フォロワー)を作成する。これにより、データの書き込みについても複数のサーバに負荷が分散されるだけでなく、可用性も確保することができる。

図2.NewSQLデータベースのスケールアウト方法

図2.NewSQLデータベースのスケールアウト方法
出典:ITR

NewSQLデータベースは、このようにRDBMSの弱点であるスケールアウトによる拡張を可能にするが、その一方でデメリットも存在する。NewSQLデータベースはレプリケーションとシャーディングを同時に行うため、複雑なデータ管理によるオーバーヘッドが大きい。したがって、サーバ数が少ない構成では期待されるパフォーマンスは得られず、より大規模なシステムでなければスケールアウトの効果が発揮されない。

また、NewSQLデータベースは、アプリケーションのデータベース層においてRDBMSの代わりに使用することを前提としているため、RDBMSとの互換性が要求される。しかし、RDBMSとの完全な互換性が保証されるわけではなく、ストアドプロシージャ、トリガー、表単位でのロックといったRDBMSでは一般的な機能が実現されていない場合もある。このような非互換性は製品によって異なるため、必要な機能範囲を特定したうえで製品を選定する必要がある。

ITR 著作物の引用について

ITRでは著作物の利用に関してガイドラインを設けています。 ITRの著作物を「社外利用」される場合は、一部のコンテンツを除き、事前にITRの利用許諾が必要となります。 コンテンツごとに利用条件や出典の記載方法が異なりますので、詳細および申請については『ITR著作物の引用ポリシー』をご確認ください。

TOP