PostgreSQL Advent Calendar 2012(全部俺)のDay 18です。 前回のエントリでは、PostgreSQLのストレージアーキテクチャのうち、特にPage Pruningについて実際の動作状況を見ながら、その仕組みを解説しました。 ここまではテーブルのみの解説をしてきましたが、実際には(ほとんどのテーブルには)インデックスもありますので、レコードを更新する場合にはインデックスについてのケアも必要になります。 というわけで、今回はレコードに対する更新が行われている間に、インデックスがどのように動作しているのかを、具体的な動作例を交えて見てみます。 ■インデックスの内部構造 B-Treeのリーフノードの内部構造は以下のようになっています。 前々回のストレージアーキテクチャの基本編で、pageinspectというcontribモジュールを紹介しました。 pageinse