# 26.4.18 信息_SCHEMA INNODB_英尺_指数_缓存表

INNODB_FT_INDEX_CACHE表提供有关新插入的行的令牌信息全文指数。为了避免在 DML 操作期间进行昂贵的索引重组,新索引词的信息被单独存储,只有在优化表当服务器关闭或缓存大小超过由innodb_ft_cache_size要么innodb_ft_total_cache_size系统变量。

该表最初是空的。在查询它之前,设置innodb_ft_aux_table系统变量到包含该表的名称(包括数据库名称)全文索引(例如,测试/文章)。

有关相关使用信息和示例,请参阅第 15.15.4 节,“InnoDB 信息_SCHEMA FULLTEXT 索引表”.

INNODB_FT_INDEX_CACHE表有这些列:

  • 单词

    从新插入的行的文本中提取的单词。

  • FIRST_DOC_ID

    出现此单词的第一个文档 ID全文指数。

  • LAST_DOC_ID

    出现此单词的最后一个文档 ID全文指数。

  • DOC_COUNT

    该单词出现在其中的行数全文指数。同一个词可以在缓存表中出现多次,每次组合出现一次DOC_ID位置价值观。

  • DOC_ID

    新插入行的文档 ID。此值可能反映您为基础表定义的 ID 列的值,也可以是由InnoDB当表不包含合适的列时。

  • 位置

    该词的特定实例在相关文档中的位置,由DOC_ID价值。该值不代表绝对位置;它是添加到位置该词的前一个实例。

# 笔记

  • 该表最初是空的。在查询它之前,设置innodb_ft_aux_table系统变量到包含该表的表的名称(包括数据库名称)全文索引(例如测试/文章)。下面的例子演示了如何使用innodb_ft_aux_table系统变量以显示有关 a 的信息全文指定表的索引。

    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 |
    +------------+-----------+--------+----------+
    
  • 你必须拥有过程查询此表的权限。

  • 使用INFORMATION_SCHEMA 表或显示列语句以查看有关此表的列的其他信息,包括数据类型和默认值。

  • 有关更多信息InnoDB 全文搜索,看第 15.6.2.4 节,“InnoDB 全文索引”, 和第 12.10 节,“全文搜索功能”.