Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  The INFORMATION_SCHEMA INNODB_FT_INDEX_CACHE Table

28.4.18 INFORMATION_SCHEMA INNODB_FT_INDEX_CACHE 表

INNODB_FT_INDEX_CACHE 表提供了关于在 FULLTEXT 索引中插入新行的词元信息。为了避免在 DML 操作期间进行昂贵的索引重组,关于新索引的单词信息将单独存储,并在运行 OPTIMIZE TABLE、服务器关闭或缓存大小超过由 innodb_ft_cache_sizeinnodb_ft_total_cache_size 系统变量定义的限制时与主搜索索引组合。

这个表在初始状态下是空的。 bevor 查询它,设置 innodb_ft_aux_table 系统变量的值为包含 FULLTEXT 索引的表名(包括数据库名)(例如,test/articles)。

有关使用信息和示例,请见 第17.15.4节,“InnoDB INFORMATION_SCHEMA FULLTEXT Index 表”

INNODB_FT_INDEX_CACHE 表有以下列:

  • WORD

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

  • FIRST_DOC_ID

    在 FULLTEXT 索引中,这个单词首次出现的文档 ID。

  • LAST_DOC_ID

    在 FULLTEXT 索引中,这个单词最后一次出现的文档 ID。

  • DOC_COUNT

    这个单词在 FULLTEXT 索引中的行数。同一个单词可以在缓存表中出现多次,每次对应不同的 DOC_IDPOSITION 值组合。

  • DOC_ID

    新插入行的文档 ID。这可能是您为 underlying 表定义的 ID 列的值,也可以是 InnoDB 生成的序列值,如果表中没有合适的列。

  • POSITION

    在由 DOC_ID 值标识的相关文档中,这个单词特定的实例的位置。该值不表示绝对位置,而是相对于前一个该单词实例的偏移量。

  • 该表在初始状态下是空的。 bevor 查询它,设置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_SCHEMACOLUMNS表或SHOW COLUMNS语句来查看该表的列信息,包括数据类型和默认值。

  • 关于InnoDBFULLTEXT搜索的更多信息,请见Section 17.6.2.4, “InnoDB Full-Text Indexes”Section 14.9, “Full-Text Search Functions”