24.32.12 INFORMATION_SCHEMA INNODB_FT_INDEX_TABLEtable
INNODB_FT_INDEX_TABLEtable 提供有关用于对InnoDB
table 的FULLTEXT
索引进行文本搜索的倒排索引的信息。
该 table 最初是空的。查询之前,将innodb_ft_aux_table系统变量的值设置为包含FULLTEXT
索引的 table 的名称(包括数据库名称);例如test/articles
。
有关相关用法信息和示例,请参见第 14.16.4 节“ InnoDB INFORMATION_SCHEMA FULLTEXT 索引 table”。
INNODB_FT_INDEX_TABLEtable 具有以下列:
WORD
从FULLTEXT
的列的文本中提取的单词。
FIRST_DOC_ID
该单词出现在FULLTEXT
索引中的第一个文档 ID。
LAST_DOC_ID
该单词出现在FULLTEXT
索引中的最后一个文档 ID。
DOC_COUNT
该词在FULLTEXT
索引中出现的行数。同一字在高速缓存 table 中可以出现几次,对于DOC_ID
和POSITION
值的每种组合一次。
DOC_ID
包含单词的行的文档 ID。该值可能反映您为基础 table 定义的 ID 列的值,或者它可以是当 table 不包含合适列时由InnoDB
生成的序列值。
POSITION
单词的此特定实例在相关文档中由DOC_ID
值标识的位置。
Notes
- 该 table 最初是空的。在查询之前,将innodb_ft_aux_table系统变量的值设置为包含
FULLTEXT
索引的 table 的名称(包括数据库名称);例如test/articles
。下面的示例演示如何使用innodb_ft_aux_table系统变量显示有关指定 table 的FULLTEXT
索引的信息。在新插入的行的信息出现在INNODB_FT_INDEX_TABLE
之前,必须将FULLTEXT
索引缓存刷新到磁盘。这是通过在启用了innodb_optimize_fulltext_only系统变量的索引 table 上运行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 will 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特权才能查询此 table。
-
使用
INFORMATION_SCHEMA
COLUMNStable 或SHOW COLUMNS语句查看有关此 table 列的其他信息,包括数据类型和默认值。 -
有关
InnoDB
FULLTEXT
搜索的更多信息,请参见第 14.6.2.4 节“ InnoDB FULLTEXT 索引”和第 12.9 节“全文搜索功能”。