アンラーンいいたかっただけというのはさておき、一念発起してRDBMSについての知識を棚卸ししてモダンな製品ないしデータ構造ないしアルゴリズムをさらってみようと思い立った。

イノシシ本をベースにしつつ、その他書籍やWebサイトを参考に自分なりに理解をまとめていくつもり。

なぜ思い立ったか

MySQL5系ばかり(+たまにNoSQL製品)としか向き合ってこなかったことに危機感を覚えたから。

流石に最先端のDB研究を追いたいみたいなことは考えていないが、世のDB界隈の進歩に対して自分のキャリアの中で触れる技術があまりにも変わらなすぎた。

所謂NewSQLと呼ばれるような製品が普及し始めているし、MySQLですら8がでて久しいというのに、だ。

言い換えれば、シングルリーダーのMySQLで提供できるスケーラビリティや可用性を超えたプロダクトを作ることができない1。やばいやん。

何やる

まず棚卸しとして、主要なRDBMSについて再度整理する。特に整合性と信頼性に関するポイントに着目する。トランザクション分離レベル、レプリケーションなど。

現状の課題感が把握できたらそれに対するアプローチとしてNewSQLについて見ていく。

トレードオフがあればそれを明確にしておく。技術選定する上での判断基準とするため。

可能な限り手を動かす。

何やらない

RDBMSとか書いたけど関係代数そのものについては触れない。正規形とかも触れない。

SQLそのものについても触れない。ウィンドウ関数とか苦手だからやってもいいけど注力したいのはそこじゃない。

OLAPについては深堀りしない。OLTP、というかWebアプリケーションもしくはマイクロサービスの文脈で求められる部分に注力する。

学習ソース


  1. まぁ結構さばけてしまうのでここまで来てしまったというのもある。MySQLでもほとんどのサービスで十分なんだよな。 ↩︎