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. POJ3468【线段树lazy操作】

    上午理论AC,打到现在快吐了... 一个那么**Lazy操作打成这样,query操作和update操作都有问题,妈蛋,发现是mid<=s+1-真是蠢到家,明明是mid+1<=s卧槽连左和右 ...

  2. CodeForces 622C

    题意: 给你一个数组,m个询问,l,r,x;让你输出在区间[ l , r ]上哪个位置不等于x. 思路: 额..我这个思路还是剽来的...不过真心赞啊. 开个p数组,直接记录数组每个元素的位置,并且实 ...

  3. bzoj 4589: Hard Nim【线性筛+FWT+快速幂】

    T了两次之后我突然意识到转成fwt形式之后,直接快速幂每次乘一下最后再逆回来即可,并不需要没此次都正反转化一次-- 就是根据nim的性质,先手必输是所有堆个数异或和为0,也就变成了一个裸的板子 #in ...

  4. 如何使用webstorm去操作git

    0. 前言 在上一篇文章中,讲述了使用webstorm去调试node程序,最近研究了一下如何使用webstorm去操作git. 对于git的使用,大家的使用方式均有不同,最王道的方式非命令行莫属,基于 ...

  5. dd 使用记录

    使用dd的工具 1)测试写速度 2)测试读速度 3)测试读写速度 dd说明: if是输入文本,of是输出文本,bs是块大小,count是你指定读写块的数量 /dev/zero是从内存里面读取,不会产生 ...

  6. camshift.py OpenCv例程阅读

    源码在这 #!/usr/bin/env python ''' Camshift tracker ================ This is a demo that shows mean-shif ...

  7. CSS常见的五大布局

    本文概要 本文将介绍如下几种常见的布局: 一.单列布局 常见的单列布局有两种: header,content 和 footer 等宽的单列布局 header 与 footer 等宽,content 略 ...

  8. 合作网络(Corporative Network )并查集+路径压缩

    #include <iostream> #include <algorithm> #include <string> using namespace std; + ...

  9. 关于long long int和__int64用%I64d和%lld输出在不同编译语言下的正确性

    http://blog.csdn.net/febr2/article/details/52068357 这个网址最下面

  10. 桌面应用也可以提供HTTP文件下载

    以往,我们肯定知道,在搞Web应用的时候,我们都可能会遇到提供文件下载的功能需求,比如我以前做的一个客户许可证管理系统,客户购买ERP系统后,通常我们会根据客户的机器的机器码生成一个许可文件,而这个许 ...