無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

57.1. はじめに

GIN とは汎用転置インデックスを表します。 GIN は、インデックス対象の項目が複合型であり、インデックスにより取り扱われる問い合わせが複合型の項目内に存在する要素値に対して検索する必要がある場合を取り扱うために設計されました。 例えば、項目が文書であり、問い合わせが特定の単語を含む文書を検索することがあり得ます。

ここでインデックス対象の複合型の値を参照するために 項目 という単語を使用します。 また、 キー という単語を要素値を参照するために使用します。 GIN は本質的に、項目の値ではなく、常にキーを格納し検索します。

GIN インデックスは(キー、投稿されたリスト)の組み合わせの集合を格納します。 ここで "投稿されたリスト" はキーに合う行IDの集合です。 項目は1つ以上のキーを含むことができますので、同じ行IDが複数の投稿されたリストに現れることがあり得ます。 キー値はそれぞれ一度のみ格納されます。 このため GIN インデックスの容量は、同じキーが何度も現れる場合に非常に小さくなります。

GIN インデックスは、 GIN アクセスメソッドが高速化対象の操作を把握する必要がないという意味で汎用化されています。 その代わり、特定のデータ型に対して定義された独自の戦略を使用します。 戦略は、インデックス付けされた項目と問い合わせ条件からキーを抽出する方法および問い合わせ内のいくつかのキー値を含む行が実際に問い合わせを満たすかどうかを決定する方法を定義します。

GIN の利点の1つは、データベース専門家ではなくデータ型の分野における専門家により、適切なアクセスメソッドを持つ独自のデータ型を開発できるという点です。 これは GiST の使用とほぼ同じ利点です。

PostgreSQL における GIN の実装は、主にTeodor SigaevとOleg Bartunovにより保守されています。 GIN に関する情報は彼らの webサイト により多く記載されています。


powered by SEO.CUG.NET