文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  INFORMATION_SCHEMA INNODB_FT_INDEX_TABLE 表

28.4.19 INFORMATION_SCHEMA INNODB_FT_INDEX_TABLE 表

INNODB_FT_INDEX_TABLE 表提供有关用于处理针对 InnoDB 表的 FULLTEXT 索引进行文本搜索的倒排索引的信息。

此表最初为空。在查询它之前,将 innodb_ft_aux_table 系统变量的值设置为包含 FULLTEXT 索引的表的名称(包括数据库名称)(例如,test/articles)。

有关相关用法信息和示例,请参见 第 17.15.4 节,“InnoDB INFORMATION_SCHEMA FULLTEXT 索引表”

INNODB_FT_INDEX_TABLE 表具有以下列

  • WORD

    从作为 FULLTEXT 部分的列的文本中提取的单词。

  • FIRST_DOC_ID

    此单词在 FULLTEXT 索引中出现的第一个文档 ID。

  • LAST_DOC_ID

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

  • DOC_COUNT

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

  • DOC_ID

    包含该单词的行号的文档 ID。此值可能反映您为基础表定义的 ID 列的值,或者它可能是 InnoDB 在表不包含合适列时生成的序列值。

  • POSITION

    此单词在由 DOC_ID 值标识的相关文档中此特定实例的位置。

注释

  • 此表最初为空。在查询它之前,将 innodb_ft_aux_table 系统变量的值设置为包含 FULLTEXT 索引的表的名称(包括数据库名称)(例如,test/articles)。以下示例演示如何使用 innodb_ft_aux_table 系统变量来显示有关指定表的 FULLTEXT 索引的信息。在为新插入的行信息显示在 INNODB_FT_INDEX_TABLE 中之前,必须将 FULLTEXT 索引缓存刷新到磁盘。这可以通过在已索引的表上运行 OPTIMIZE TABLE 操作来实现,并启用 innodb_optimize_fulltext_only 系统变量。(此示例在最后将该变量禁用,因为该变量仅在暂时启用时才是有效的。)

    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_optimize_fulltext_only=ON;
    
    mysql> OPTIMIZE TABLE articles;
    +---------------+----------+----------+----------+
    | Table         | Op       | Msg_type | Msg_text |
    +---------------+----------+----------+----------+
    | test.articles | optimize | status   | OK       |
    +---------------+----------+----------+----------+
    
    mysql> SET GLOBAL innodb_ft_aux_table = 'test/articles';
    
    mysql> SELECT WORD, DOC_COUNT, DOC_ID, POSITION
           FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE 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 |
    +------------+-----------+--------+----------+
    
    mysql> SET GLOBAL innodb_optimize_fulltext_only=OFF;
  • 您必须具有 PROCESS 特权才能查询此表。

  • 使用 INFORMATION_SCHEMA COLUMNS 表或 SHOW COLUMNS 语句查看有关此表列的更多信息,包括数据类型和默认值。

  • 有关 InnoDB FULLTEXT 搜索的更多信息,请参见 第 17.6.2.4 节,“InnoDB 全文索引”第 14.9 节,“全文搜索函数”