转载请注明转载自:忆雨林枫

InnoDB全文索引删除操作处理

删除在具有全文索引的列的记录,可能会导致辅助索引表中的许多小的删除操作,使得这些表的并发性访问成为争用的焦点。为了避免此问题,被删除的文档的文档ID (DOC_ID)被记录在一个特殊的FTS_*_DELETED表。从索引表中删除记录时,全文索引仍保留索引记录。在返回查询结果钱,使用 FTS_*_DELETED表中的记录信息,来过滤掉已被删除的文件ID。这种设计的好处就是删除速度快,成本低。缺点就是删除记录后,索引的大小不会立刻缩小。要删除全文索引条目中已经删除的记录,请使用innodb_optimize_fulltext_only=ON,并对索引所在的表运行OPTIMIZE TABLE 以重建全文索引。