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.