• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • INNODB_FT_INDEX_TABLE表

    INNODB_FT_INDEX_TABLE表提供了有关用于处理文本搜索靠在所述倒排索引信息FULLTEXT的索引InnoDB表。

    该表最初是空的。在查询之前,将innodb_ft_aux_table系统变量的值设置为包含FULLTEXT索引的表的名称(包括数据库名称)(例如test/articles)。

    有关相关用法信息和示例,请参见“ 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_TABLEFULLTEXT必须将索引缓存刷新到磁盘。这是通过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 will 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_SCHEMACOLUMNS表或该SHOW COLUMNS语句参见有关该表的列的其他信息,包括数据类型和默认值。
    • 有关InnoDBFULLTEXT搜索的更多信息,请参见“ InnoDB全文索引”和“全文搜索功能”。