24.4.13 Таблица INFORMATION_SCHEMA INNODB_FT_INDEX_TABLE
Таблица INNODB_FT_INDEX_TABLE предоставляет информацию об инвертированном индексе, используемом для обработки текстовых запросов к индексу FULLTEXT таблицы InnoDB.
Изначально эта таблица пустая. Перед запросом к ней, установите значение системной переменной innodb_ft_aux_table в имя (включая имя базы данных) таблицы, содержащей индекс FULLTEXT; например, test/articles.
Для получения связанной информации и примеров см. Раздел 14.16.4, «Таблицы индексов полнотекстового поиска InnoDB INFORMATION_SCHEMA».
Таблица 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см. Раздел 14.6.2.4, «Индексы полнотекстового поиска InnoDB» и Раздел 12.9, «Функции полнотекстового поиска».
© 2025 Oracle
Licensed under the GPLv2 License.