### 26.4.19 信息\_SCHEMA INNODB\_英尺\_指数\_表表 [](<>) 这[`INNODB_FT_INDEX_TABLE`](information-schema-innodb-ft-index-table-table.html)表提供有关用于处理文本搜索的倒排索引的信息`全文`的索引`InnoDB`桌子。 该表最初是空的。在查询它之前,设置[`innodb_ft_aux_table`](innodb-parameters.html#sysvar_innodb_ft_aux_table)系统变量到包含该表的表的名称(包括数据库名称)`全文`索引(例如,`测试/文章`)。 有关相关使用信息和示例,请参阅[第 15.15.4 节,“InnoDB 信息\_SCHEMA FULLTEXT 索引表”](innodb-information-schema-fulltext_index-tables.html). 这[`INNODB_FT_INDEX_TABLE`](information-schema-innodb-ft-index-table-table.html)表有这些列: - `单词` 从属于 a 的列的文本中提取的单词`全文`. - `FIRST_DOC_ID` 出现此单词的第一个文档 ID`全文`指数。 - `LAST_DOC_ID` 出现此单词的最后一个文档 ID`全文`指数。 - `DOC_COUNT` 该单词出现在其中的行数`全文`指数。同一个词可以在缓存表中出现多次,每次组合出现一次`DOC_ID`和`位置`价值观。 - `DOC_ID` 包含该单词的行的文档 ID。此值可能反映您为基础表定义的 ID 列的值,也可以是由`InnoDB`当表不包含合适的列时。 - `位置` 该词的特定实例在相关文档中的位置,由`DOC_ID`价值。 #### 笔记 - 该表最初是空的。在查询它之前,设置[`innodb_ft_aux_table`](innodb-parameters.html#sysvar_innodb_ft_aux_table)系统变量到包含该表的名称(包括数据库名称)`全文`索引(例如,`测试/文章`)。下面的例子演示了如何使用[`innodb_ft_aux_table`](innodb-parameters.html#sysvar_innodb_ft_aux_table)系统变量以显示有关 a 的信息`全文`指定表的索引。在新插入行的信息出现之前`INNODB_FT_INDEX_TABLE`, 这`全文`索引缓存必须刷新到磁盘。这是通过运行一个[`优化表`](optimize-table.html)对索引表进行操作[`innodb_optimize_fulltext_only`](innodb-parameters.html#sysvar_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; ``` - 你必须拥有[`过程`](privileges-provided.html#priv_process)查询此表的权限。 - 使用`INFORMATION_SCHEMA` [`列`](information-schema-columns-table.html)表或[`显示列`](show-columns.html)语句以查看有关此表的列的其他信息,包括数据类型和默认值。 - 有关更多信息`InnoDB` `全文`搜索,看[第 15.6.2.4 节,“InnoDB 全文索引”](innodb-fulltext-index.html), 和[第 12.10 节,“全文搜索功能”](fulltext-search.html).