3章ストレージと抽出

Wer Ordnung hält, ist nur zu faul zum Suchen.

(ものをきちんと整理している者は、探すのを面倒くさがっているだけなのだ。)

――ドイツのことわざ

最も根源的なレベルでは、データベースがやらなければならないことは2つです。1つは与えられたデータを保存すること、もう1つはそのデータを要求されたら返すことです。

2章では、データモデルとクエリ言語について述べました。これらはアプリケーション開発者がデータベースにデータを渡す際のフォーマットと、それを再び取り出すための仕組みです。本章では、同じことをデータベース側の観点から述べていきます。すなわち、与えられたデータを保存する方法と、要求された際にそのデータを見つける方法を見ていきましょう。

アプリケーション開発者は、保存と取り出しに関するデータベースの内部動作に留意すべきです。それはなぜなのでしょうか? アプリケーション開発者は、おそらく独自のストレージエンジンをゼロから開発することはありませんが、利用可能な数多くのストレージエンジンの中から、自分のアプリケーションに適したエンジンを選択できなければなりません。自分のワークロードの性格に合わせてストレージエンジンがうまくパフォーマンスを発揮できるようにチューニングするためには、ストレージエンジンの舞台裏での動作を大まかに理解しておく必要があります。

特に、トランザクションのワークロードに対して最適化されたストレージエンジンと、分析のワークロードに対して最適化されたエンジンとの間には、大きな違いがあります。この違いについては「3.2 トランザクション処理か、分析処理か?」で調べ、「3.3 列指向ストレージ」で分析用途に最適化されたストレージエンジンのグループについて述べます。 ...

Get データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.