28.4.19 Таблица INFORMATION_SCHEMA INNODB_FT_INDEX_TABLE
Таблица INNODB_FT_INDEX_TABLE предоставляет информацию об инвертированном индексе, используемом для обработки текстовых поисков по индексу FULLTEXT таблицы InnoDB.
Эта таблица изначально пуста. Перед запросом к ней, установите значение системной переменной innodb_ft_aux_table в имя таблицы, содержащей индекс FULLTEXT (включая имя базы данных), например, test/articles.
Для получения связанной информации и примеров см. Раздел 17.15.4, «InnoDB INFORMATION_SCHEMA FULLTEXT Index Tables».
Таблица INNODB_FT_INDEX_TABLE имеет следующие столбцы:
-
WORDСлово, извлеченное из текста столбцов, которые являются частью
FULLTEXT. -
FIRST_DOC_IDИдентификатор первого документа, в котором это слово появляется в индексе
FULLTEXT. -
LAST_DOC_IDИдентификатор последнего документа, в котором это слово появляется в индексе
FULLTEXT. -
DOC_COUNTКоличество строк, в которых это слово появляется в индексе
FULLTEXT. Одно и то же слово может встречаться несколько раз в таблице кэша, по одному разу для каждой комбинации значенийDOC_IDиPOSITION. -
DOC_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, POSITIONFROM 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_SCHEMACOLUMNSили операторSHOW COLUMNSдля просмотра дополнительной информации о столбцах этой таблицы, включая типы данных и значения по умолчанию.Дополнительную информацию об поиске
InnoDBFULLTEXTсм. в Разделе 17.6.2.4, «InnoDB Full-Text Indexes», и Разделе 14.9, «Функции поиска по полному тексту».
© 2025 Oracle
Licensed under the GPLv2 License.