帶您深入了解SQL全文索引
索引是SQL數(shù)據(jù)庫中非常重要的部分,下文對(duì)SQL全文索引進(jìn)行了詳細(xì)的介紹,希望可以使您對(duì)SQL全文索引有更深入的認(rèn)識(shí)。
全文索引為在字符串?dāng)?shù)據(jù)中進(jìn)行復(fù)雜的詞搜索提供有效支持。全文索引存儲(chǔ)關(guān)于重要詞和這些詞在特定列中的位置的信息。全文查詢利用這些信息,可快速搜索包含具體某個(gè)詞或一組詞的行。
全文索引包含在全文目錄中。每個(gè)數(shù)據(jù)庫可以包含一個(gè)或多個(gè)全文目錄。一個(gè)目錄不能屬于多個(gè)數(shù)據(jù)庫,而每個(gè)目錄可以包含一個(gè)或多個(gè)表的全文索引。一個(gè)表只能有一個(gè)全文索引,因此每個(gè)有全文索引的表只屬于一個(gè)全文目錄。
全文目錄和索引不存儲(chǔ)在它們所屬的數(shù)據(jù)庫中。目錄和索引由 Microsoft 搜索服務(wù)分開管理。
全文索引必須在基表上定義,而不能在視圖、系統(tǒng)表或臨時(shí)表上定義。
依據(jù)上面的描述,可以做這樣一個(gè)比喻。大家大概都見過檔案柜,檔案柜是將各種檔案按照分類登記在檔案索引卡上,這個(gè)檔案柜中的就象建立的全文索引,通過這些檔案索引卡可以迅速定位你要查找的卷宗所在的位置。如果不建立這些索引卡,如果卷宗數(shù)量不多還好,一旦檔案數(shù)量很多的時(shí)候顯然很難找到期望的卷宗,這就類似使用LIKE的情形。
全文索引和普通索引的區(qū)別:
普通SQL 索引 | 全文索引 |
存儲(chǔ)時(shí)受定義它們所在的數(shù)據(jù)庫的控制 | 存儲(chǔ)在文件系統(tǒng)中,但通過數(shù)據(jù)庫管理 |
每個(gè)表允許有若干個(gè)普通索引 | 每個(gè)表只允許有一個(gè)全文索引 |
當(dāng)對(duì)作為其基礎(chǔ)的數(shù)據(jù)進(jìn)行插入、更新或刪除時(shí),它們會(huì)自動(dòng)更新 | 將數(shù)據(jù)添加到全文索引稱為填充,全文索引可通過調(diào)度或特定請(qǐng)求來請(qǐng)求,也可以在添加新數(shù)據(jù)時(shí)自動(dòng)發(fā)生 |
不分組 | 在同一個(gè)數(shù)據(jù)庫內(nèi)分組為一個(gè)或多個(gè)全文目錄 |
使用SQL Server企業(yè)管理器、向?qū)Щ騎ransact-SQL語句創(chuàng)建和除去 | 使用SQL Server企業(yè)管理器、向?qū)Щ虼鎯?chǔ)過程創(chuàng)建、管理和除去 |
【編輯推薦】