処理量が増えてもレスポンスが落ちないDBを構築する方法は、いくつもある。RDBMSでも条件次第では、列指向DBに負けないレベルの速さを実現できる。速さを勝ち取るには、DBにより異なる特性や制約を押さえることが大切だ。
インターネットの浸透、スマートデバイスの普及といった社会環境の変化を背景に、システムで扱うデータ量が膨らんでいる。RDBMSだと拡張性が乏しいので、単体サーバーでは対処しきれない場合はデータベースを分割(シャーディング)し、分割結果(シャード)を複数のサーバーに配置して負荷分散するといった対処が必要になる。ただし、リバランスが大変、シャードをまたがる結合ができないといった副作用がある。そのため、現実解ではあるものの筋のよいやり方ではないとされる。
RDBMSであっても、複数のDBインスタンス(ノード)から共有ディスクにアクセスして分散処理する形態を取れるものもある(Oracle RACやIBM DB2 pureScale)。ただし、ノードを増やしていくと、主にストレージのネットワークがボトルネックになってスケールしにくくなる。
そうなったシステムの処理性能を高めるには、最新ハードウエアの投入が手っ取り早い。また、データがメモリーに搭載できる量に収まるなら、インメモリー型のRDBMSを使うと数十万TPS(トランザクション/秒)といった高い性能を得られる可能性がある。
以下では、データベースのアーキテクチャーの断面から「フラッシュメモリーで分散RDB性能が数倍向上」「制約を飲めればRDBで数十万TPSも」という新常識を見ていく。