文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式 Letter) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  INFORMATION_SCHEMA INNODB_FT_INDEX_TABLE 表格

28.4.19 INFORMATION_SCHEMA INNODB_FT_INDEX_TABLE 表格

INNODB_FT_INDEX_TABLE 表格提供關於用於處理對 InnoDB 表格的 FULLTEXT 索引進行文字搜尋的反向索引的資訊。

此表格最初是空的。在查詢它之前,請將 innodb_ft_aux_table 系統變數的值設定為包含 FULLTEXT 索引的表格名稱 (包括資料庫名稱),例如 test/articles

如需相關使用資訊與範例,請參閱 第 17.15.4 節,〈InnoDB INFORMATION_SCHEMA FULLTEXT 索引表格〉

INNODB_FT_INDEX_TABLE 表格具有下列欄:

  • WORD

    從屬於 FULLTEXT 的欄的文字中擷取的單字。

  • FIRST_DOC_ID

    此單字出現在 FULLTEXT 索引中的第一個文件 ID。

  • LAST_DOC_ID

    此單字出現在 FULLTEXT 索引中的最後一個文件 ID。

  • DOC_COUNT

    此單字出現在 FULLTEXT 索引中的列數。相同的單字可以在快取表格中出現多次,每個 DOC_IDPOSITION 值組合各出現一次。

  • DOC_ID

    包含該單字的列的文件 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 全文索引〉,以及 第 14.9 節,〈全文搜尋函數〉