InnoDB INFORMATION_SCHEMA FULLTEXT Index Tables

下表提供了FULLTEXT索引的元数据:

mysql> SHOW TABLES FROM INFORMATION_SCHEMA LIKE 'INNODB_FT%';

+-------------------------------------------+
| Tables_in_INFORMATION_SCHEMA (INNODB_FT%) |
+-------------------------------------------+
| INNODB_FT_CONFIG |
| INNODB_FT_BEING_DELETED |
| INNODB_FT_DELETED |
| INNODB_FT_DEFAULT_STOPWORD |
| INNODB_FT_INDEX_TABLE |
| INNODB_FT_INDEX_CACHE |
+-------------------------------------------+
  • INNODB_FT_CONFIG表显示有关InnoDB表的FULLTEXT索引和相关处理的元数据。

  • INNODB_FT_BEING_DELETED表是INNODB_FT_DELETED表的快照,仅在OPTIMIZE TABLE维护操作期间使用。 运行OPTIMIZE TABLE时,将清空INNODB_FT_BEING_DELETED表,并从INNODB_FT_DELETED表中删除DOC_ID。 由于INNODB_FT_BEING_DELETED的内容通常具有较短的生命周期,因此该表对监视或调试的实用性有限。 有关在具有FULLTEXT索引的表上运行OPTIMIZE TABLE的信息,请参见“微调MySQL全文搜索”。

  • INNODB_FT_DELETED表记录从InnoDB表的FULLTEXT索引中删除的行。为避免在InnoDB FULLTEXT索引的DML操作期间进行昂贵的索引重组,有关新删除的单词的信息将单独存储,在执行文本搜索时从搜索结果中过滤掉,并仅在发出OPTIMIZE TABLE时从主搜索索引中删除InnoDB表的声明。有关更多信息,请参阅优化InnoDB全文索引

  • INNODB_FT_DEFAULT_STOPWORD表包含在InnoDB表上创建FULLTEXT索引时默认使用的停用词列表。 有关默认InnoDB禁用词列表以及如何定义自己的禁用词列表的信息,请参见“全文停用词”。

  • INNODB_FT_INDEX_TABLE表显示有关用于处理InnoDB表的FULLTEXT索引的文本搜索的反向索引的信息。

  • INNODB_FT_INDEX_CACHE表包含有关FULLTEXT索引中新插入行的标记信息。 为避免在DML操作期间进行昂贵的索引重组,有关新索引词的信息将单独存储,并且仅在运行OPTIMIZE TABLE时,服务器关闭时或缓存大小超过由innodb_ft_cache_sizeinnodb_ft_total_cache_size

7. INNODB_FT_BEING_DELETED

INNODB_FT_BEING_DELETED表是INNODB_FT_DELETED表的快照,仅在OPTIMIZE TABLE维护操作期间使用。 运行OPTIMIZE TABLE时,将清空INNODB_FT_BEING_DELETED表,并从INNODB_FT_DELETED表中删除DOC_ID。 由于INNODB_FT_BEING_DELETED的内容通常具有较短的生命周期,因此该表对监视或调试的实用性有限。 有关在具有FULLTEXT索引的表上运行OPTIMIZE TABLE的信息,请参见“微调MySQL全文搜索”。

此表最初显示为空,直到您设置配置变量innodb_ft_aux_table的值。 输出类似于为INNODB_FT_DELETED表提供的示例。

有关相关用法信息和示例,请参见“InnoDB INFORMATION_SCHEMA FULLTEXT索引表”。

INNODB_FT_BEING_DELETED表有以下列:

mysql> desc INNODB_FT_BEING_DELETED;
+--------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------------------+------+-----+---------+-------+
| DOC_ID | bigint(21) unsigned | NO | | 0 | |
+--------+---------------------+------+-----+---------+-------+
1 row in set (0.00 sec)
  • DOC_ID:正在删除的行的文档ID。 此值可能反映您为基础表定义的ID列的值,或者它可以是InnoDB在表不包含合适的列时生成的序列值。 此值用于跳过innodb_ft_index_table表中的行,当您通过OPTIMIZE TABLE语句从FULLTEXT索引中物理删除已删除行的数据之前进行文本搜索时。 有关更多信息,请参阅优化InnoDB全文索引

Notes

  • 您必须具有PROCESS权限才能查询此表。

  • 使用INFORMATION_SCHEMA COLUMNS表或SHOW COLUMNS语句查看有关此表的列的其他信息,包括数据类型和默认值。

  • 有关InnoDB FULLTEXT搜索的更多信息,请参见“InnoDB FULLTEXT索引”和“全文搜索函数”。

8. INNODB_FT_CONFIG

INNODB_FT_CONFIG表显示有关InnoDB表的FULLTEXT索引和相关处理的元数据。

在查询此表之前,请将配置变量innodb_ft_aux_table设置为包含FULLTEXT索引的表的名称(包括数据库名称),例如test / articles。

有关相关用法信息和示例,请参见“InnoDB INFORMATION_SCHEMA FULLTEXT索引表”。

INNODB_FT_CONFIG表包含以下列:

  • KEY:指定包含FULLTEXT索引的InnoDB表的元数据项的名称。

  • VALUE:与相应KEY列关联的值,反映InnoDB表的FULLTEXT索引方面的某些限制或当前值。

Notes

  • 此表仅用于内部配置。它不用于统计信息目的。

  • 您必须具有PROCESS权限才能查询此表。

  • 使用INFORMATION_SCHEMA COLUMNS表或SHOW COLUMNS语句查看有关此表的列的其他信息,包括数据类型和默认值。

  • KEY列的值可能会根据InnoDB全文处理的性能调整和调试需求而发展。关键价值包括:

  • optimize_checkpoint_limit:运行OPTIMIZE TABLE的秒数。

  • synced_doc_id:要发布的下一个DOC_ID。

  • stopword_table_name:用户定义的停用词表的数据库/表名。如果没有用户定义的停用词表,则该字段显示为空。

  • use_stopword:指示是否使用了一个停用词表,该表是在创建FULLTEXT索引时定义的。

  • 有关InnoDB FULLTEXT搜索的更多信息,请参见“InnoDB FULLTEXT索引”和“全文搜索函数”。

示例

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_CONFIG;
+---------------------------+-------------------+
| KEY | VALUE |
+---------------------------+-------------------+
| optimize_checkpoint_limit | 180 |
| synced_doc_id | 0 |
| stopword_table_name | test/my_stopwords |
| use_stopword | 1 |
+---------------------------+-------------------+

9. INNODB_FT_DEFAULT_STOPWORD

INNODB_FT_DEFAULT_STOPWORD表包含在InnoDB表上创建FULLTEXT索引时默认使用的停用词列表。 有关默认InnoDB禁用词列表以及如何定义自己的禁用词列表的信息,请参见“全文停用词”。

有关相关用法信息和示例,请参见“InnoDB INFORMATION_SCHEMA FULLTEXT索引表”。

INNODB_FT_DEFAULT_STOPWORD表包含以下列:

Notes

  • 您必须具有PROCESS权限才能查询此表。

  • 使用INFORMATION_SCHEMA COLUMNS表或SHOW COLUMNS语句查看有关此表的列的其他信息,包括数据类型和默认值。

  • 有关InnoDB FULLTEXT搜索的更多信息,请参见“InnoDB FULLTEXT索引”和“全文搜索函数”。

示例

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_DEFAULT_STOPWORD;
+-------+
| value |
+-------+
| a |
| about |
| an |
| are |
| as |
| at |
| be |
| by |
| com |
| de |
| en |
| for |
| from |
| how |
| i |
| in |
| is |
| it |
| la |
| of |
| on |
| or |
| that |
| the |
| this |
| to |
| was |
| what |
| when |
| where |
| who |
| will |
| with |
| und |
| the |
| www |
+-------+
36 rows in set (0.00 sec)

10. INNODB_FT_DELETED

INNODB_FT_DELETED表记录从InnoDB表的FULLTEXT索引中删除的行。为避免在InnoDB FULLTEXT索引的DML操作期间进行昂贵的索引重组,有关新删除的单词的信息将单独存储,在执行文本搜索时从搜索结果中过滤掉,并仅在发出OPTIMIZE TABLE时从主搜索索引中删除InnoDB表的声明。有关更多信息,请参阅优化InnoDB全文索引

此表最初显示为空,直到您将配置变量innodb_ft_aux_table的值设置为包含FULLTEXT索引的表的名称(包括数据库名称),例如test/articles

有关相关用法信息和示例,请参见“InnoDB INFORMATION_SCHEMA FULLTEXT索引表”。

INNODB_FT_DELETED表包含以下列:

  • DOC_ID

    新删除的行的文档ID。此值可能反映您为基础表定义的ID列的值,或者它可以是InnoDB在表不包含合适的列时生成的序列值。此值用于跳过innodb_ft_index_table表中的行,当您通过OPTIMIZE TABLE语句从FULLTEXT索引中物理删除已删除行的数据之前进行文本搜索时。有关更多信息,请参阅优化InnoDB全文索引。

Notes

  • 您必须具有PROCESS权限才能查询此表。

  • 使用INFORMATION_SCHEMA COLUMNS表或SHOW COLUMNS语句查看有关此表的列的其他信息,包括数据类型和默认值。

  • 有关InnoDB FULLTEXT搜索的更多信息,请参见“InnoDB FULLTEXT索引”和“全文搜索函数”。

示例

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_DELETED;
+--------+
| DOC_ID |
+--------+
| 6 |
| 7 |
| 8 |
+--------+

11. INNODB_FT_INDEX_CACHE

INNODB_FT_INDEX_CACHE表包含有关FULLTEXT索引中新插入行的标记信息。 为避免在DML操作期间进行昂贵的索引重组,有关新索引词的信息将单独存储,并且仅在运行OPTIMIZE TABLE时,服务器关闭时或缓存大小超过由innodb_ft_cache_sizeinnodb_ft_total_cache_size

在查询此表之前,请将配置变量innodb_ft_aux_table设置为包含FULLTEXT索引的表的名称(包括数据库名称),例如test / articles。

有关相关用法信息和示例,请参见“InnoDB INFORMATION_SCHEMA FULLTEXT索引表”。

INNODB_FT_INDEX_CACHE表包含以下列:

  • WORD :从新插入的行的文本中提取的单词。
  • FIRST_DOC_ID:此单词出现在FULLTEXT索引中的第一个文档ID。
  • LAST_DOC_ID :此单词出现在FULLTEXT索引中的最后一个文档ID。
  • DOC_COUNT :此单词出现在FULLTEXT索引中的行数。在缓存表中可以多次出现相同的单词,对于DOC_ID和POSITION值的每个组合一次。
  • DOC_ID :新插入行的文档ID。此值可能反映您为基础表定义的ID列的值,或者它可以是InnoDB在表不包含合适的列时生成的序列值。
  • POSITION :由DOC_ID值标识的相关文档中该单词的该特定实例的位置。该值不代表绝对位置;它是添加到该单词的前一个实例的POSITION的偏移量。

Notes

  • 此表最初显示为空,直到您设置配置变量innodb_ft_aux_table的值。 以下示例演示如何使用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 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_ft_aux_table = 'test/articles';
Query OK, 0 rows affected (0.00 sec) mysql> select * from test.articles;
+----+-----------------------+------------------------------------------+
| id | title | body |
+----+-----------------------+------------------------------------------+
| 1 | MySQL Tutorial | DBMS stands for DataBase ... |
| 2 | How To Use MySQL Well | After you went through a ... |
| 3 | Optimizing MySQL | In this tutorial we will show ... |
| 4 | 1001 MySQL Tricks | 1. Never run mysqld as root. 2. ... |
| 5 | MySQL vs. YourSQL | In the following database comparison ... |
| 6 | MySQL Security | When configured properly, MySQL ... |
+----+-----------------------+------------------------------------------+ mysql> USE INFORMATION_SCHEMA; mysql> SELECT * FROM INNODB_FT_INDEX_CACHE;
+------------+--------------+-------------+-----------+--------+----------+
| WORD | FIRST_DOC_ID | LAST_DOC_ID | DOC_COUNT | DOC_ID | POSITION |
+------------+--------------+-------------+-----------+--------+----------+
| 1001 | 5 | 5 | 1 | 5 | 0 |
| after | 3 | 3 | 1 | 3 | 22 |
| comparison | 6 | 6 | 1 | 6 | 44 |
| configured | 7 | 7 | 1 | 7 | 20 |
| database | 2 | 6 | 2 | 2 | 31 |
| database | 2 | 6 | 2 | 6 | 35 |
| dbms | 2 | 2 | 1 | 2 | 15 |
| following | 6 | 6 | 1 | 6 | 25 |
| mysql | 2 | 7 | 6 | 2 | 0 |
| mysql | 2 | 7 | 6 | 3 | 11 |
| mysql | 2 | 7 | 6 | 4 | 11 |
| mysql | 2 | 7 | 6 | 5 | 5 |
| mysql | 2 | 7 | 6 | 6 | 0 |
| mysql | 2 | 7 | 6 | 7 | 0 |
| mysql | 2 | 7 | 6 | 7 | 41 |
| mysqld | 5 | 5 | 1 | 5 | 31 |
| never | 5 | 5 | 1 | 5 | 21 |
| optimizing | 4 | 4 | 1 | 4 | 0 |
| properly | 7 | 7 | 1 | 7 | 31 |
| root | 5 | 5 | 1 | 5 | 41 |
| run | 5 | 5 | 1 | 5 | 27 |
| security | 7 | 7 | 1 | 7 | 6 |
| show | 4 | 4 | 1 | 4 | 42 |
| stands | 2 | 2 | 1 | 2 | 20 |
| through | 3 | 3 | 1 | 3 | 37 |
| tricks | 5 | 5 | 1 | 5 | 11 |
| tutorial | 2 | 4 | 2 | 2 | 6 |
| tutorial | 2 | 4 | 2 | 4 | 25 |
| use | 3 | 3 | 1 | 3 | 7 |
| well | 3 | 3 | 1 | 3 | 17 |
| went | 3 | 3 | 1 | 3 | 32 |
| you | 3 | 3 | 1 | 3 | 28 |
| yoursql | 6 | 6 | 1 | 6 | 10 |
+------------+--------------+-------------+-----------+--------+----------+
33 rows in set (0.00 sec)

12. INNODB_FT_INDEX_TABLE

INNODB_FT_INDEX_TABLE表显示有关用于处理InnoDB表的FULLTEXT索引的文本搜索的反向索引的信息。

在查询此表之前,请将配置变量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_ID和POSITION值的每个组合一次。
  • DOC_ID :包含单词的行的文档ID。此值可能反映您为基础表定义的ID列的值,或者它可以是InnoDB在表不包含合适的列时生成的序列值。
  • POSITION :由DOC_ID值标识的相关文档中该单词的该特定实例的位置。

Notes

  • 此表最初显示为空,直到您设置配置变量innodb_ft_aux_table的值。 以下示例演示如何使用innodb_ft_aux_table选项显示有关指定表的FULLTEXT索引的信息。 在INNODB_FT_INDEX_TABLE中出现新插入行的信息之前,必须将FULLTEXT索引缓存刷新到磁盘。 这是通过使用innodb_optimize_fulltext_only = ON在索引表上运行OPTIMIZE TABLE操作来完成的。
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;
Query OK, 0 rows affected (0.00 sec) mysql> OPTIMIZE TABLE articles;
+---------------+----------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+---------------+----------+----------+----------+
| test.articles | optimize | status | OK |
+---------------+----------+----------+----------+ mysql> SET GLOBAL innodb_ft_aux_table = 'test/articles';
Query OK, 0 rows affected (0.00 sec) mysql> USE INFORMATION_SCHEMA; mysql> SELECT word, doc_count, doc_id, position FROM 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 |
+------------+-----------+--------+----------+
  • 您必须具有PROCESS权限才能查询此表。

  • 使用INFORMATION_SCHEMA COLUMNS表或SHOW COLUMNS语句查看有关此表的列的其他信息,包括数据类型和默认值。

  • 有关InnoDB FULLTEXT搜索的更多信息,请参见“InnoDB FULLTEXT索引”和“全文搜索函数”。

InnoDB INFORMATION_SCHEMA FULLTEXT Index Tables的更多相关文章

  1. InnoDB INFORMATION_SCHEMA Buffer Pool Tables

    InnoDB INFORMATION_SCHEMA Buffer Pool Tables InnoDB INFORMATION_SCHEMA缓冲池表提供有关InnoDB缓冲池中页面的缓冲池状态信息和元 ...

  2. InnoDB INFORMATION_SCHEMA System Tables

    InnoDB INFORMATION_SCHEMA System Tables 可以使用InnoDB INFORMATION_SCHEMA系统表提取有关InnoDB管理的schema对象的元数据. 此 ...

  3. InnoDB INFORMATION_SCHEMA Lock Tables

    InnoDB INFORMATION_SCHEMA Lock Tables 三张InnoDB INFORMATION_SCHEMA表使您能够监视事务并诊断潜在的锁定问题: INNODB_TRX:提供有 ...

  4. InnoDB INFORMATION_SCHEMA Tables about Compression

    InnoDB INFORMATION_SCHEMA Tables about Compression 了解关于压缩的InnoDB INFORMATION_SCHEMA表,可以深入了解压缩的整体运行情况 ...

  5. MySQL使用全文索引(fulltext index)---高性能

    转载地址:https://blog.csdn.net/u011734144/article/details/52817766/ 1.创建全文索引(FullText index) 旧版的MySQL的全文 ...

  6. MySQL使用全文索引(fulltext index)

    1.创建全文索引(FullText index) 旧版的MySQL的全文索引只能用在MyISAM表格的char.varchar和text的字段上. 不过新版的MySQL5.6.24上InnoDB引擎也 ...

  7. InnoDB INFORMATION_SCHEMA Temporary Table Info Table

    InnoDB INFORMATION_SCHEMA Temporary Table Info Table INNODB_TEMP_TABLE_INFO提供有关InnoDB实例中当前活动的用户创建的In ...

  8. 在MYSQL中运用全文索引(FULLTEXT index)

    在MYSQL中使用全文索引(FULLTEXT index) MYSQL的一个很有用的特性是使用全文索引(FULLTEXT index)查找文本的能力.目前只有使用MyISAM类型表的时候有效(MyIS ...

  9. InnoDB INFORMATION_SCHEMA Metrics Table

    InnoDB INFORMATION_SCHEMA Metrics Table INNODB_METRICS表将所有InnoDB性能和资源相关计数器合并到一个INFORMATION_SCHEMA表中. ...

随机推荐

  1. C++ C# 默认对齐是8字节

    C++ C# 默认对齐是8字节 以上,一直以为是4字节,尼玛

  2. ufunc函数

    无灯可看.雨水从教正月半.探茧推盘.探得千秋字字看. 铜驼故老.说著宣和似天宝.五百年前.曾向杭州看上元. ufunc是universal function的缩写,他是一种对数组的每个元素进行运算的函 ...

  3. hdu 1558 Segment set 计算几何+并查集★

    #include <cstdio> #include <iostream> #include <string.h> using namespace std; ; # ...

  4. 洛谷 P3960 列队

    https://www.luogu.org/problemnew/show/P3960 常数超大的treap #pragma GCC optimize("Ofast") #incl ...

  5. 在solr客户端删除库中的数据

    1.在solr客户端,访问你的索引库(我认为最方便的方法) 1)documents type 选择 XML 2)documents 输入下面语句<delete><query>* ...

  6. XSS漏洞解析(二)

    上篇我们讲了XSS的一些相关的内容,这篇我们就直接上代码demo解决实际问题吧. 主要的问题是xssfilter的编写,我们直接去网上找一下框架,一般有js,php,java等语言都有相关的XSS的相 ...

  7. ABP教程(四)- 开始一个简单的任务管理系统 - 实现UI端的增删改查

    接上一篇:ABP教程(三)- 开始一个简单的任务管理系统 – 后端编码 1.实现UI端的增删改查 1.1添加增删改查代码 打开SimpleTaskSystem.sln解决方案,添加一个“包含视图的MV ...

  8. 第一个 swift 项目

    今天 学习了 一丢丢 swift,特此记录一下 ! 原来创建的时候 ,只要把 语言 由以前的Object-C改为Swift,变创建好了自己的swift工程 第一个简单的swift demo 上代码 i ...

  9. springdata-jpa 八种查询方法

    使用:maven+Spring+jpa+Junit4 查询方式:SQL,JPQL查询,Specification多条件复杂查询 返回类型:list<POJO>,list<Stinrg ...

  10. centos开机直接进入命令行

    找到文件,/etc/inittab 文件,在下面有一行 id:5:initdefault: 将上面的5改成3就可以了 5是图形界面 3是命令行界面 就是文本界面.