该INNODB_FT_INDEX_TABLE
表提供有关用于处理针对表FULLTEXT
索引的
文本搜索的倒排索引的信息InnoDB
。
该表最初是空的。在查询之前,将innodb_ft_aux_table
系统变量的值设置为包含FULLTEXT
索引的表的名称(包括数据库名称);例如
test/articles
。
有关相关的使用信息和示例,请参阅 第 14.16.4 节,“InnoDB INFORMATION_SCHEMA FULLTEXT 索引表”。
该INNODB_FT_INDEX_TABLE
表有以下列:
WORD
从属于 a 的列的文本中提取的单词
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
必须将索引缓存刷新到磁盘。这是通过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
搜索的更多信息,请参阅 第 14.6.2.4 节,“InnoDB 全文索引”和 第 12.10 节,“全文搜索功能”。