Documentation Home
MySQL 8.0 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 36.1Mb
PDF (A4) - 36.2Mb


MySQL 8.0 リファレンスマニュアル  /  ...  /  INFORMATION_SCHEMA INNODB_FT_INDEX_CACHE テーブル

このページは機械翻訳したものです。

26.51.17 INFORMATION_SCHEMA INNODB_FT_INDEX_CACHE テーブル

INNODB_FT_INDEX_CACHE テーブルには、FULLTEXT インデックスに新しく挿入された行に関するトークン情報が表示されます。 DML 操作中の高コストのインデックス再編成を回避するために、新しくインデックス付けされたワードに関する情報は個別に格納され、OPTIMIZE TABLE の実行時、サーバーの停止時、またはキャッシュサイズが innodb_ft_cache_size または innodb_ft_total_cache_size システム変数で定義された制限を超えた場合にのみメイン検索インデックスと結合されます。

このテーブルは最初は空です。 クエリーする前に、innodb_ft_aux_table システム変数の値を、FULLTEXT インデックスを含むテーブルの名前 (test/articles など) に設定します。

関連する使用法と使用例については、セクション15.15.4「InnoDB INFORMATION_SCHEMA FULLTEXT インデックステーブル」を参照してください。

INNODB_FT_INDEX_CACHE テーブルには、次のカラムがあります:

  • WORD

    新しく挿入された行のテキストから抽出された単語。

  • FIRST_DOC_ID

    この単語が FULLTEXT インデックスに出現する最初のドキュメント ID。

  • LAST_DOC_ID

    この単語が FULLTEXT インデックスに出現する最後のドキュメント ID。

  • DOC_COUNT

    この単語が FULLTEXT インデックスに出現する行数。 同じ単語は、DOC_ID 値と POSITION 値の組み合わせごとに一度ずつ、キャッシュテーブル内で複数回現れる可能性があります。

  • DOC_ID

    新しく挿入された行のドキュメント ID。 この値は、基礎となるテーブルに定義した ID カラムの値を反映しているか、テーブルに適切なカラムが含まれていない場合に InnoDB によって生成される順序値である可能性があります。

  • POSITION

    DOC_ID 値で識別された関連ドキュメント内のこの単語の特定のインスタンス位置。 値は絶対位置を表しません。その単語の 1 つ前のインスタンスの POSITION に追加されたオフセットです。

メモ

  • このテーブルは最初は空です。 クエリーする前に、innodb_ft_aux_table システム変数の値を、FULLTEXT インデックスを含むテーブルの名前 (test/articles など) に設定します。 次の例は、innodb_ft_aux_table システム変数を使用して、指定したテーブルの FULLTEXT インデックスに関する情報を表示する方法を示しています。

    mysql> USE test;
    
    mysql> CREATE TABLE articles (
             id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
             title VARCHAR(200),
             body TEXT,
             FULLTEXT (title,body)
           ) ENGINE=InnoDB;
    
    mysql> INSERT INTO articles (title,body) VALUES
           ('MySQL Tutorial','DBMS stands for DataBase ...'),
           ('How To Use MySQL Well','After you went through a ...'),
           ('Optimizing MySQL','In this tutorial we show ...'),
           ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
           ('MySQL vs. YourSQL','In the following database comparison ...'),
           ('MySQL Security','When configured properly, MySQL ...');
    
    mysql> SET GLOBAL innodb_ft_aux_table = 'test/articles';
    
    mysql> SELECT WORD, DOC_COUNT, DOC_ID, POSITION
           FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE LIMIT 5;
    +------------+-----------+--------+----------+
    | WORD       | DOC_COUNT | DOC_ID | POSITION |
    +------------+-----------+--------+----------+
    | 1001       |         1 |      4 |        0 |
    | after      |         1 |      2 |       22 |
    | comparison |         1 |      5 |       44 |
    | configured |         1 |      6 |       20 |
    | database   |         2 |      1 |       31 |
    +------------+-----------+--------+----------+
  • このテーブルをクエリーするには PROCESS 権限が必要です。

  • INFORMATION_SCHEMA COLUMNS テーブルまたは SHOW COLUMNS ステートメントを使用して、データ型やデフォルト値など、このテーブルのカラムに関する追加情報を表示します。

  • InnoDB FULLTEXT 検索の詳細は、セクション15.6.2.4「InnoDB FULLTEXT インデックス」およびセクション12.10「全文検索関数」を参照してください。