どんなサイトか?
このサイトはシステム設計の基礎に関して包括的に解説をしています。
扱っているトピックはパフォーマンス・スケーラビリティ・一貫性・データベース・キャッシュ・ネットワークなど幅広いです。
初心者のエンジニアは自分が好きな領域に関してざっと目を通して置くとかなり実務でも役に立つと思います。
データベースに関するトピック
私は特にデータベースに関するトピックが好きなので、どのような内容を扱っているかご紹介します。
以下の通り、データベースに関しては、RDB・NoSQLについてざっくりと扱っています。
RDBMS
レプリケーションに関する知識やシャーディングについては特にジュニアレベルのアプリケーションのエンジニアだとあまり役に立たないかもしれないですが、アーキテクチャを考える上でとても重要なので呼んでおくと良いと思います。
またSQLチューニングのトピックでもざっくりどのようなことをするとパフォーマンス劣化するからやめようみたいなことがかかれています。
例えば、NULL値はパフォーマンス劣化の原因となることがある、みたいな話です。
NoSQL
NoSQLについては、NoSQLにはどのようなジャンルのDBがあり、それぞれのメリット・デメリットが解説されています。
これも技術選定の際に参考になるので、一通り目を通しておきたいですね。
物足りない点
NewSQLに関する記載は無い
ただいくつか物足りない点があります。
例えば、NewSQLに関するトピックは2025年3月時点で取り上げられていません。
NewSQLは読み書きが水平スケールしなおかつACID特性があるクラウドネイティブなDBとして、近年注目されており、PayPayやMercariなどの国内のビックテックも採用していたりします。
もしNewSQLについてご存じない方は、以下の記事を一読することをおすすめします。
SQLチューニング
また他の点で言うとSQLチューニングに関して、もっといろいろな方法が紹介されていると良いなと思いました。
例えば過剰なジョインに対する解決策として非https://amzn.to/3DYiYEh正規化が記事内で紹介されていますが、他にもサブクエリとして先に絞り込むことでジョインコストを低くする方法などもあります。
そのようなトピックについては以下の書籍も参考にしてみると良いです。
- 失敗から学ぶRDBの正しい歩き方, https://amzn.to/4cl6wva
- SQL実践入門──高速でわかりやすいクエリの書き方, https://amzn.to/3DYiYEh
どちらの書籍もDBの構造を踏まえた上でどのようにパフォーマンスに優れたクエリを書くのか?という点について解説しています。おすすめ。