Spec-Zone.ru › MySQL 9.2

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, POSITION
           FROM 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_SCHEMA COLUMNS или оператор SHOW COLUMNS для просмотра дополнительной информации о столбцах этой таблицы, включая типы данных и значения по умолчанию.

  • Дополнительную информацию об поиске InnoDB FULLTEXT см. в Разделе 17.6.2.4, «InnoDB Full-Text Indexes», и Разделе 14.9, «Функции поиска по полному тексту».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/information-schema-innodb-ft-index-table-table.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API