10章ストレージ、インデックス、レプリケーション
これまでの本書の大部分は、データベースの運用についてでした。データベースの種類はさまざですが、そこに共通するもっとも基本的かつ重要な機能は、データを格納することです。本章では、単一ノードにおいてデータを格納する方法、大規模なデータセットを分割して格納する方法、および複数ノードにおいてデータをレプリケーションする方法について説明します。
本章では、信頼性と運用に重点を置いています。DBREとしてこれらを実現するため、インフラを選択し、パフォーマンス特性を理解し、サービスに適したデータストアを取捨選択できるよう、Martin Kleppman著"Designing Data-Intensive Applications"(O'Reilly、『データ指向アプリケーションデザイン』オライリー)を強くおすすめします。
10.1 データ構造のストレージ
伝統的にデータベースは、テーブルとインデックスの組み合わせでデータを保存してきました。テーブルは主な記憶メカニズムであり、インデックスはアクセス時間を改善するために順序づけられたデータの最適化されたサブセットです。最近では、データサイズの急増もあり、どちらも大幅な進化を遂げています。データがどのようにストレージから読み込まれ、また書き込まれるかを理解することは、ストレージのサブシステム、およびデータベースの構成と最適化をするうえで重要です。
データベースがどのようにデータを格納しているかを理解する場合、生データの格納と取得の両方を考えなければなりません。大規模なデータセットでは、妥当なレベルのレイテンシで特定のデータのサブセットにアクセスすると、そのデータの検索と取得を高速化するために、インデックスと呼ばれる特殊なストレージ構造が必要になることがよくあります。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access