7.8. 部分インデックス

著者:

注釈: 部分インデックスは現在のところPostgreSQL ではサポートされていませんが、前身であるPostgres ではサポートされていたことがあり、コードのうちの 多くがまだ残っています。この機能のサポートはいつか復活させたい と思っています。

部分インデックスはテーブルのサブセットに 構築されるインデックスで、そのサブセットは述語によって定義されます。 Postgresは任意の述語で部分インデックス をサポートしていました。確か、IBM の AS/400 用の DB2は単独句述語を使って部分インデックス をサポートしていたと思います。

部分インデックスの重要な動機は以下です: もしインデックスを有効に使うことのできるすべての自分が行う問い合わせ が一定の値にあるならば、なぜテーブル全体にインデックスをつけ 空間/時間のコストに苦しまなければならないのでしょうか?

部分インデックスを構築、更新、そして問い合わせる部分はそれほど 悪くありません。面倒なのはインデックスの選択(どのインデックスを 構築すればよいのでしょう?)そして問い合わせの最適化(どのインデックスを 使えばよいのでしょう?)です。つまり、仕事/ 問い合わせに適しているかを決定する部分などがあります。データベース 理論に興味を持っている人のために説明すると、コストパラメータも 計算式も違いますが、問題は基本的に対応する実現化 されたビューの問題と類似しています。コストの異なるパラメータや 公式で作業することです。これらは一般的な場合に、標準の順序の SQL型には難しい問題です。そしてブラックボックス 拡張型にとってはとても難しい問題です。なぜなら選択性 概算の技術がとても粗野だからです。

詳しい情報は、Stonebraker, M, 1989b, Olson, 1993, そして Seshardri, 1995 を見てみて下さい。