2.3.2 テキストインデクス
テキストインデクスは,SQL文の検索条件に指定した文字列を含む文字データを検索する場合に使用するインデクスです。テキストインデクスは,テキストインデクスを定義した実表の列に格納されているデータ(文字列)の出現情報を,ページ単位で管理しています。
SQL文の検索条件に次の指定をして表を検索する場合に,テキストインデクスを使用すると,読み込むページを少なくすることができます。その分,表の検索性能を向上させることができます。
-
LIKE述語
-
LIKE_REGEX述語
-
スカラ関数CONTAINS
テキストインデクスは,次の2つの管理部で構成されます。
-
文字列管理部
テキストインデクス化された文字列を管理します。
-
出現情報管理部
テキストインデクス化された文字列の出現情報を管理します。
テキストインデクスの管理部の構成を,次の図に示します。
また,テキストインデクスを使用して実表を検索する場合の処理の流れを,次の図に示します。
- [説明]
-
次の流れで,テキストインデクスを使用して検索を行います。
-
文字列管理部から,LIKE述語中に指定した検索条件の文字列(「曇り」)を検索します。そして,該当する文字列番号(「12」)を取得します。
-
出現情報管理部から,文字列管理部で検索した文字列番号(「12」)をキーにして,該当する出現ページ番号(「2」と「511」)を検索します。
-
実表T1に対して,出現情報管理部の出現ページ番号(「2」と「511」)に対応するデータページを読み込みます。そして,該当する行ID(「4」と「1532」)を検索して,表データを取得します。このとき,該当する出現ページ番号以外のデータページは読み込みません。
-
- メモ
-
検索条件に指定した列にB-treeインデクスおよびテキストインデクスが定義されている場合,表の検索時にはどちらか片方のインデクスだけが使われます。ただし,検索条件の指定内容によっては,両方のインデクスが使われないこともあります。