28.4.18 Таблица INFORMATION_SCHEMA INNODB_FT_INDEX_CACHE
Таблица INNODB_FT_INDEX_CACHE предоставляет информацию о токенах вновь вставленных строк в индекс FULLTEXT. Для предотвращения дорогостоящей реорганизации индексов во время операций DML, информация о недавно проиндексированных словах хранится отдельно и объединяется с основным индексом поиска только при выполнении OPTIMIZE
TABLE, при завершении работы сервера или при превышении размера кэша, заданного системной переменной innodb_ft_cache_size или innodb_ft_total_cache_size.
Эта таблица изначально пуста. Перед запросом к ней необходимо установить значение системной переменной innodb_ft_aux_table на имя таблицы, содержащей индекс FULLTEXT (например, test/articles).
Для получения связанной информации и примеров см. Раздел 17.15.4, «Таблицы индексов полнотекстового поиска InnoDB INFORMATION_SCHEMA».
В таблице INNODB_FT_INDEX_CACHE содержатся следующие столбцы:
-
WORDСлово, извлечённое из текста вновь вставленной строки.
-
FIRST_DOC_IDИдентификатор первого документа, в котором это слово появляется в индексе
FULLTEXT. -
LAST_DOC_IDИдентификатор последнего документа, в котором это слово появляется в индексе
FULLTEXT. -
DOC_COUNTКоличество строк, в которых это слово появляется в индексе
FULLTEXT. Одно и то же слово может встречаться в таблице кэша несколько раз, один раз для каждой комбинации значенийDOC_IDиPOSITION. -
DOC_IDИдентификатор документа вновь вставленной строки. Это значение может отражать значение столбца ID, определённого для базовой таблицы, или может быть значением последовательности, сгенерированным
InnoDB, если таблица не содержит подходящего столбца. -
POSITIONПозиция данного экземпляра слова в соответствующем документе, идентифицируемом значением
DOC_ID. Значение не представляет собой абсолютную позицию; это смещение, добавляемое кPOSITIONпредыдущего экземпляра этого слова.
Примечания
-
Эта таблица изначально пуста. Перед запросом к ней необходимо установить значение системной переменной
innodb_ft_aux_tableна имя таблицы, содержащей индексFULLTEXT(например,test/articles). Следующий пример демонстрирует использование системной переменнойinnodb_ft_aux_tableдля отображения информации об индексеFULLTEXTдля указанной таблицы.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_ft_aux_table = 'test/articles';mysql>SELECT WORD, DOC_COUNT, DOC_ID, POSITIONFROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE 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 | +------------+-----------+--------+----------+ Для запроса к этой таблице необходимо иметь право
PROCESS.Используйте таблицу
INFORMATION_SCHEMACOLUMNSили операторSHOW COLUMNSдля просмотра дополнительной информации о столбцах этой таблицы, включая типы данных и значения по умолчанию.Для получения дополнительной информации о поиске
InnoDBFULLTEXTсм. Раздел 17.6.2.4, «Индексы полнотекстового поиска InnoDB» и Раздел 14.9, «Функции полнотекстового поиска».
© 2025 Oracle
Licensed under the GPLv2 License.