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_ID
和POSITION
值的组合。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
索引缓存刷新到磁盘。这可以通过在启用了innodb_optimize_fulltext_only
系统变量的情况下对索引表执行OPTIMIZE TABLE
操作来实现。(该示例在最后禁用了该变量,因为它只应暂时启用。)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 节,“全文搜索函数”.