レポート・ライブラリ|株式会社アイ・ティ・アール

【R-225012_21660883065】NewSQLデータベースとは何か

作成者: 株式会社アイ・ティ・アール|Jan 7, 2025 12:00:00 AM

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

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

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

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

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

出典:ITR

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

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

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

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

出典:ITR

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

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