24.4.12 Таблица 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.
Для получения связанной информации и примеров, см. Раздел 14.16.4, «Таблицы InnoDB INFORMATION_SCHEMA FULLTEXT Index».
Таблица 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, см. Раздел 14.6.2.4, «Индексы InnoDB с полным текстом» и Раздел 12.9, «Функции поиска по полному тексту».
© 2025 Oracle
Licensed under the GPLv2 License.