SQL or NoSQL?

Database といえば SQL (relational model) が代名詞であったが、2010年前後から SQL だけでは対応できない要件もでてきて、NoSQL (Not Only SQL) も注目されるようになってきた。 スマホ普及に伴い、social media を代表として大規模な同時接続を扱う必要性が増し、SQL では性能要件を満たせなくなったことが NoSQL を後押しした。

NoSQL

SQL を利用する利点

SQL がこれまで広く利用されている背景として、relational model の汎用性の高さがある。

...

2025年時点でどう考えるか?

GAFA のような極端な hyper scale を除けば SQL で良いのではないか。2025年時点、1台の database server でさばけない規模の service 開発は、世界全体の案件数からするとほんの僅かである。

NoSQL に注目の集まった 2010年前後は、storage が HDD だった。Enterprise 向けの 15k rpm HDD でも random IO は200IOPS 程度、これを多数 RAID で束ね、さらに NoSQL の active-active cluster にすることでしか性能を得ることができなかった。 2025年 現在の storage は SSD である。Client PC 向けの lowend SSD ですら、数百k IOPS の性能があり、NoSQL が必要となった 2010年前後と比べて 1000 倍以上の性能向上である。

SSD に助けられ、SQL の性能が大幅に向上していることから、 service が成長して SQL で対応できない規模になることを心配するよりも、SQL の柔軟性を最大限活用しながら製品の改良に集中するほうが現時点では有益だろうと考える。