NewSQLは何が“New”なのか? 従来DBとの違い
2024年12月、AWSがre:Inventで「Amazon Aurora DSQL」を発表した。久々にAI以外の大きなアップデートということもあり広く注目を集めた。DSQLは、NewSQLと呼ばれる製品に位置づけられるが、“New”SQLは何が新しいのだろうか。
先に答えを言ってしまうと、実はNewSQLに固有の新機能はない。そのため海外ではそのアーキテクチャから「分散データベース(Distributed Database)」と呼ばれることもある。しかし、既にNewSQLという名前も人口に膾炙しているため、本稿では以後この用語を使う。
NewSQLは、LinkedIn、Pinterestなどグローバルに展開するメガサービスや、国内でもメルカリ、カプコン、DMM.com、mixi2、楽天など有名企業やサービスが多く採用しており、実は私たちも知らないうちにNewSQLの恩恵を受けているのだ(今挙げたのはいずれもTiDBのユーザーである)。その仕組みと革新性を理解するのが第1回の主題である。
RDB・NoSQL・NewSQLの違い
現在、データベースの選択肢にはRDB、NoSQL、NewSQLという3つがある。これらの特徴を比較表にまとめると、以下のように表わせる。

RDBとNoSQLの間にはトレードオフの関係があることが見てわかるだろう。NoSQLは水平スケーラビリティを持つが、クエリ言語やACIDトランザクションがないという欠点を持つ[注1]。一方、RDBにはこうした便利な機能は充実しているが、スケーラビリティ(特に更新のスケーラビリティ)に限界がある。
これに対して、NewSQLはいずれの特性も満たす。いわばNewSQLは、RDBとNoSQLの間の対立関係を止揚するために考え出された「スケーラブルRDB」と言える。なぜNewSQLはRDBとNoSQLのトレードオフを克服することができたのか? そこには一つの技術革新がある。
[注1] 厳密に言うと、この表には少し補足が必要である。というのも、上3つの軸で見ると近年のRDBとNoSQLは似通ってきているからである。たとえば「Apache Cassandra」を例にとると、CQLというクエリ言語やスキーマ定義を備えるようになってきている。Amazon DynamoDBのようにACIDトランザクションをサポートするNoSQL製品もある。またRDBの方もJSON型をサポートして半構造化データを扱えるようになってきている。