MySQL索引简述--全文索引

什么是全文索引

全文索引是将存储于数据库中的整本书或整篇文章中任意内容信息查找出来的技术。从InnoDB1.2.x版本开始便开始支持全文索引。

倒排索引

全文索引通常用倒排索引来实现,倒排索引和BTree一样,是一种索引结构,它在辅助表中存储了单词与单词自身在一个或多个文档中所在位置之间的映射,其拥有两种表现形式:

  • inverted file idnex:{单词,单词文档所在ID}
  • full inverted index:{单词,(单词文档所在ID,具体文档中的位置)}

例如有如下表t:


表t

用inverted file idnex方式存储内容如下所示:

inverted file idnex方式

用full inverted index方式存储内容如下所示:

full inverted index方式

相比之下,full inverted index会占用更多空间,但能更好的定位数据,并扩充其他一些搜索特性。

InnoDB全文检索

InnoDB全文检索采用full inverted index方式,并将(DocumentId,Position)视为一个“ilist”,因此在全文检索表中有两个列:word字段和ilist字段。为了提高检索性能,InnoDB中共有6张辅助表。

参考文章

数据库系统实现

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容