下表提供的元数据全文
索引数量:
mysql >显示表等INFORMATION_SCHEMA 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
表格INNODB_FT_BEING_DELETED
:提供快照INNODB_FT_DELETED
表;它只在优化表
维护操作。当优化表
运行时,INNODB_FT_BEING_DELETED
桌子空了,而且DOC_ID
的值将被删除INNODB_FT_DELETED
表格因为它的内容INNODB_FT_BEING_DELETED
该表的生命周期通常很短,对于监视或调试来说用处有限。有关跑步的信息优化表
在表上全文
索引,看到第12.10.6节“微调MySQL全文搜索”.INNODB_FT_DELETED
:存储已删除的行全文
指数为InnoDB
表格对象的DML操作期间避免昂贵的索引重组InnoDB
全文
索引中,有关新删除单词的信息将单独存储,当您进行文本搜索时,将从搜索结果中过滤掉,并且只有当您发出优化表
声明的InnoDB
表格INNODB_FT_DEFAULT_STOPWORD
的列表stopwords类时默认使用的全文
指数InnoDB
表。INNODB_FT_INDEX_TABLE
方法处理文本搜索时使用的倒排索引的信息全文
一个指数InnoDB
表格INNODB_FT_INDEX_CACHE
:提供关于新插入行的令牌信息全文
索引。为了避免在DML操作期间进行昂贵的索引重组,关于新索引单词的信息被单独存储,只有当优化表
,当服务器关闭时,或当缓存大小超过innodb_ft_cache_size
或innodb_ft_total_cache_size
系统变量。
除了INNODB_FT_DEFAULT_STOPWORD
表,这些表最初是空的。的值之前,请先设置innodb_ft_aux_table
类的表的名称(包括数据库名称)全文
指数(例如,测试/文章
)。
例14.5 InnoDB全文索引信息模式表
本例使用一个带有全文
索引中包含的数据全文
指数INFORMATION_SCHEMA
表。
创建一个表
全文
索引并插入一些数据:CREATE TABLE articles (id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200), body TEXT, FULLTEXT (title,body))mysql> INSERT INTO articles (title,body) VALUES (' mysql教程','DBMS代表数据库…'),('如何很好地使用mysql ','After you went through a…'),('优化mysql ','在本教程中我们展示…'),('1001 mysql技巧','1。不要以root用户运行mysqld。2. ...'), ('MySQL vs. YourSQL','在以下数据库比较中…'),('MySQL安全','当配置正确时,MySQL…');
设置
innodb_ft_aux_table
变量添加到表的名称全文
索引。如果未设置此变量,则InnoDB
全文
INFORMATION_SCHEMA
表是空的,除了INNODB_FT_DEFAULT_STOPWORD
.SET GLOBAL innodb_ft_aux_table = 'test/articles';
查询
INNODB_FT_INDEX_CACHE
类中新插入行的信息全文
索引。为避免在DML操作期间进行昂贵的索引重组,新插入行的数据保留在全文
索引缓存,直到优化表
运行(或直到服务器关闭或超出缓存限制)。SELECT * FROM INFORMATION_SCHEMA。INNODB_FT_INDEX_CACHE限制5;+------------+--------------+-------------+-----------+--------+----------+ | 字| FIRST_DOC_ID | LAST_DOC_ID | DOC_COUNT | DOC_ID |位置 | +------------+--------------+-------------+-----------+--------+----------+ | 1001 | 5 | 5 | 1 | 5 | 0 | | | 3 | 3 | 1 | 3 | 22 | |比较| 6 | 6 | 1 | 6 | 44 | | | 7 | 7配置| 1 | 7 | 20 | |数据库| 2 | 6 | 2 | 2 | 31 | +------------+--------------+-------------+-----------+--------+----------+
启用
innodb_optimize_fulltext_only
系统变量和运行优化表
在包含全文
索引。的内容全文
索引缓存到主全文
索引。innodb_optimize_fulltext_only
改变了优化表
语句操作InnoDB
表,并打算在维护操作期间临时启用InnoDB
表与全文
索引。SET GLOBAL innodb_optimize_fulltext_only=ON;mysql>优化表+---------------+----------+----------+----------+ | 表| Op | Msg_type | Msg_text | +---------------+----------+----------+----------+ | 测试。| | |状态优化好的文章 | +---------------+----------+----------+----------+
查询
INNODB_FT_INDEX_TABLE
表,查看主数据的信息全文
索引,包括关于刚刚从全文
索引缓存。SELECT * FROM INFORMATION_SCHEMA。INNODB_FT_INDEX_TABLE限制5;+------------+--------------+-------------+-----------+--------+----------+ | 字| FIRST_DOC_ID | LAST_DOC_ID | DOC_COUNT | DOC_ID |位置 | +------------+--------------+-------------+-----------+--------+----------+ | 1001 | 5 | 5 | 1 | 5 | 0 | | | 3 | 3 | 1 | 3 | 22 | |比较| 6 | 6 | 1 | 6 | 44 | | | 7 | 7配置| 1 | 7 | 20 | |数据库| 2 | 6 | 2 | 2 | 31 | +------------+--------------+-------------+-----------+--------+----------+
的
INNODB_FT_INDEX_CACHE
表现在为空,因为优化表
操作刷新全文
索引缓存。SELECT * FROM INFORMATION_SCHEMA。INNODB_FT_INDEX_CACHE限制5;空集(0.00秒)
中删除一些记录
测试/文章
表格mysql> DELETE FROM test。WHERE id < 4;
查询
INNODB_FT_DELETED
表格对象中删除的行全文
索引。为了避免在DML操作期间进行昂贵的索引重组,关于新删除记录的信息将单独存储,在执行文本搜索时从搜索结果中过滤掉,在运行时从主搜索索引中删除优化表
.SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_DELETED;+--------+ | DOC_ID | +--------+ | | 2 | 3 | 4 | | +--------+
运行
优化表
删除已删除的记录。mysql>优化表+---------------+----------+----------+----------+ | 表| Op | Msg_type | Msg_text | +---------------+----------+----------+----------+ | 测试。| | |状态优化好的文章 | +---------------+----------+----------+----------+
的
INNODB_FT_DELETED
表现在应该是空的。SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_DELETED;空集(0.00秒)
查询
INNODB_FT_CONFIG
表格该表包含关于全文
索引及相关处理:optimize_checkpoint_limit
:之后的秒数优化表
停止运行。synced_doc_id
:下一个DOC_ID
发行。stopword_table_name
:数据库/表
用户定义的停止词表的名称。的价值
如果没有用户定义的停止词表,则列为空。use_stopword
:指示是否使用停止词表,在全文
创建索引。
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_CONFIG;+---------------------------+-------+ | 键|值 | +---------------------------+-------+ | optimize_checkpoint_limit | 180 | | synced_doc_id 8 | | | stopword_table_name | | | use_stopword | 1 | +---------------------------+-------+
禁用
innodb_optimize_fulltext_only
,因为它只打算暂时启用:SET GLOBAL innodb_optimize_fulltext_only=OFF;