2012-12-26 26 views
8

當需要搜索時,Android開發人員手冊似乎更喜歡SQLite數據庫中的FTS3。我閱讀了FTS3說明,它似乎創建了一個虛擬表格而不是永久表格。 SQLite中的虛擬表(FTS3)和普通表有什麼區別?即使在我退出應用後,虛擬表是否永久存在並保留在數據庫中?謝謝。正常表vs虛擬表SQLite DB

回答

5

虛擬表允許SQLite引擎使用(通常)非SQLite代碼訪問數據存儲的內容。這使開發人員可以將自定義功能添加到SQLite。

在FTS的情況下,它最初不是SQLite引擎的一部分。它是SQLite外部的代碼,允許最終用戶對數據進行全文搜索。

是一個虛擬表永久? 這取決於實施。對於FTS,數據是永久的。但是,您可以創建一個使用RAM進行存儲的實現 - 當應用程序終止時,這顯然會消失。

更多關於虛擬表:http://www.sqlite.org/vtab.html

0

我認爲這是更準確的說,創建一個搜索界面API指南指出,FTS3做全文搜索和LIKE快得多,視的特點搜索。例如,使用LIKE的常規SQLite查詢允許使用通配符,而使用MATCH的FTS3查詢則不允許。如果你想搜索令牌,你可能想要使用FTS3。如果你做不精確的比賽,你一定要跟LIKE一起去。

+0

我覺得通配符使用MATCH太時允許的。你只需要根據我在SQLite網站上閱讀的內容放*。 – androidnerd