INNODB_FT_DELETED - xiaoboluo768/mysql-system-schema GitHub Wiki

  • 该表提供查询从InnoDB表的FULLTEXT索引中删除的行信息。它的存在是为了避免在InnoDB FULLTEXT索引的DML操作期间进行昂贵的索引重组操作,新删除的全文索引中单词的信息将单独存储在该表中,在执行文本搜索时从中过滤出搜索结果,该表中的信息仅在执行OPTIMIZE TABLE语句时清空
  • 该表中的信息默认不记录,需要使用innodb_ft_aux_table选项(该选项默认值为空串)指定需要记录哪个innodb引擎表的信息,例如:test/test
  • 查询该表的账户需要有PROCESS权限,该表为Memory引擎临时表
  • 表定义语句
CREATE TEMPORARY TABLE `INNODB_FT_DELETED` (
  `DOC_ID` bigint(21) unsigned NOT NULL DEFAULT '0'
) ENGINE=MEMORY DEFAULT CHARSET=utf8
  • 表字段含义
  • DOC_ID:从innodb_ft_aux_table参数指定的库表中新删除的行的全文索引DOC_ID值。该表中的值用于跳过innodb_ft_index_table表中的行查询。在对innodb_ft_aux_table参数指定的表执行OPTIMIZE TABLE语句时将清除INNODB_FT_DELETED表中的值
  • 表记录内容示例
# 使用innodb_ft_aux_table 选项指定包含全文索引的Innodb引擎表
root@localhost : test 11:41:01> SET GLOBAL innodb_ft_aux_table = 'test/test';
Query OK, 0 rows affected (0.00 sec)

# 删除表中的行
root@localhost : test 11:41:24> delete from test where id=1;
Query OK, 3 rows affected (0.02 sec)

# 查询INNODB_FT_DELETED表,此时INNODB_FT_DELETED表中就包含了被删除的全文索引的DOC_ID值
root@localhost : test 11:41:29> SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_DELETED;
+--------+
| DOC_ID |
+--------+
|      4 |
|      5 |
|      6 |
|    10 |
|    11 |
|    12 |
|    13 |
+--------+
7 rows in set (0.00 sec)

上一篇:INNODB_CMP_PER_INDEX和INNODB_CMP_PER_INDEX_RESET表 |下一篇:INNODB_BUFFER_PAGE_LRU表

⚠️ **GitHub.com Fallback** ⚠️