【ニューエスキューエル】

NewSQL とは?

最終更新:
💡 SQLとトランザクションを、大規模な処理でも

SQLやリレーショナルモデル、トランザクションを使いながら、大規模なオンライン処理への対応を目指すデータベースの分類。実装や互換性は製品ごとに異なる。

📌 このページのポイント
NewSQL:SQLを大規模な処理でもSQL・表データを扱う方法トランザクション更新をまとめて扱う分散SQLの構成例複数のノードで処理や保存を分担互換性や性能は、製品ごとに確認しよう
分散SQLはNewSQLに含まれる方式の一つ。データの配置や複製の仕方は製品によって異なります。
ひよこ ひよこ
NewSQLって、SQLの新しいバージョン?
ペンギン先生 ペンギン先生
SQLという言語の新バージョンではなく、データベースの分類名だよ。SQLや表を使うリレーショナルモデル、トランザクションを保ちながら、大規模なオンライン処理に対応しようとする仕組みを指すんだ。
ひよこ ひよこ
何を解決しようとしているの?
ペンギン先生 ペンギン先生
注文や決済など、データの読み書きとトランザクションが多い処理を、規模が大きくなっても扱いたいんだ。複数のサーバーで処理を分担する分散SQLは、そのための方式の一つだよ。ただしNewSQLという分類には、ほかの実装方式も含まれるんだ。
ひよこ ひよこ
NoSQLは整合性が弱いから、置き換えるの?
ペンギン先生 ペンギン先生
NoSQL全体が整合性に弱い、とはいえないよ。たとえばMongoDBには、複数の文書をまとめて更新するトランザクションがあるんだ。SQLかNoSQLかだけで優劣を決めず、データの形、必要な保証、読み書きの仕方を製品ごとに比べよう。
ひよこ ひよこ
具体的には、どんなデータベースがある?
ペンギン先生 ペンギン先生
分散SQLの例にはGoogle SpannerやTiDBがあるよ。TiDBはMySQLとの互換性を提供し、計算と保存を分けて規模を変えられる仕組みを持っているんだ。製品ごとに構造や機能が違うから、名前だけで同じものとは考えないでね。
ひよこ ひよこ
SQLが使えれば、今のアプリをそのまま移せる?
ペンギン先生 ペンギン先生
SQLが使えることと、完全に互換性があることは別だよ。たとえばSpannerのPostgreSQLインターフェースは、PostgreSQLの機能や構文の一部を提供するものなんだ。移行前に、使っている型や関数、トランザクションの動作を確かめる必要があるよ。
ひよこ ひよこ
サーバーを増やせば、いつでも速くなるのかな?
ペンギン先生 ペンギン先生
処理の種類やデータの配置によるよ。分散したノード間のやり取りも必要になるので、複数ノードをまたぐ処理が増えれば負担になることがあるんだ。必要な規模と応答時間、運用の手間や費用を合わせて選ぼう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「NewSQL」って出てきたら「SQLとトランザクションを大規模な処理でも使うためのDB」と思えばだいたいOK!
📖 おまけ:英語の意味
「NewSQL」 = 新しいSQL系データベースの分類
💬 2016年の論文では、著者の一人が2011年の事業分析レポートで使い始めた分類名と説明されているよ。新しいSQL言語という意味ではないんだ。

参考資料

← 用語集にもどる