MySQL索引簡述--全文索引

什么是全文索引

全文索引是將存儲于數(shù)據(jù)庫中的整本書或整篇文章中任意內(nèi)容信息查找出來的技術(shù)。從InnoDB1.2.x版本開始便開始支持全文索引。

倒排索引

全文索引通常用倒排索引來實現(xiàn),倒排索引和BTree一樣,是一種索引結(jié)構(gòu),它在輔助表中存儲了單詞與單詞自身在一個或多個文檔中所在位置之間的映射,其擁有兩種表現(xiàn)形式:

  • inverted file idnex:{單詞,單詞文檔所在ID}
  • full inverted index:{單詞,(單詞文檔所在ID,具體文檔中的位置)}

例如有如下表t:


表t

用inverted file idnex方式存儲內(nèi)容如下所示:

inverted file idnex方式

用full inverted index方式存儲內(nèi)容如下所示:

full inverted index方式

相比之下,full inverted index會占用更多空間,但能更好的定位數(shù)據(jù),并擴充其他一些搜索特性。

InnoDB全文檢索

InnoDB全文檢索采用full inverted index方式,并將(DocumentId,Position)視為一個“ilist”,因此在全文檢索表中有兩個列:word字段和ilist字段。為了提高檢索性能,InnoDB中共有6張輔助表。

參考文章

數(shù)據(jù)庫系統(tǒng)實現(xiàn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容