The INNODB_FT_INDEX_TABLE table
provides information about the inverted index used to process text
searches against the FULLTEXT index of an
InnoDB table.
This table is empty initially. Before querying it, set the value
of the innodb_ft_aux_table system
variable to the name (including the database name) of the table
that contains the FULLTEXT index; for example
test/articles.
For related usage information and examples, see Section 14.16.4, “InnoDB INFORMATION_SCHEMA FULLTEXT Index Tables”.
The INNODB_FT_INDEX_TABLE table has
these columns:
WORDA word extracted from the text of the columns that are part of a
FULLTEXT.FIRST_DOC_IDThe first document ID in which this word appears in the
FULLTEXTindex.LAST_DOC_IDThe last document ID in which this word appears in the
FULLTEXTindex.DOC_COUNTThe number of rows in which this word appears in the
FULLTEXTindex. The same word can occur several times within the cache table, once for each combination ofDOC_IDandPOSITIONvalues.DOC_IDThe document ID of the row containing the word. This value might reflect the value of an ID column that you defined for the underlying table, or it can be a sequence value generated by
InnoDBwhen the table contains no suitable column.POSITIONThe position of this particular instance of the word within the relevant document identified by the
DOC_IDvalue.
Notes
This table is empty initially. Before querying it, set the value of the
innodb_ft_aux_tablesystem variable to the name (including the database name) of the table that contains theFULLTEXTindex; for exampletest/articles. The following example demonstrates how to use theinnodb_ft_aux_tablesystem variable to show information about aFULLTEXTindex for a specified table. Before information for newly inserted rows appears inINNODB_FT_INDEX_TABLE, theFULLTEXTindex cache must be flushed to disk. This is accomplished by running anOPTIMIZE TABLEoperation on the indexed table with theinnodb_optimize_fulltext_onlysystem variable enabled. (The example disables that variable again at the end because it is intended to be enabled only temporarily.)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;You must have the
PROCESSprivilege to query this table.Use the
INFORMATION_SCHEMACOLUMNStable or theSHOW COLUMNSstatement to view additional information about the columns of this table, including data types and default values.For more information about
InnoDBFULLTEXTsearch, see Section 14.6.2.4, “InnoDB Full-Text Indexes”, and Section 12.9, “Full-Text Search Functions”.