2016-12-17 35 views
0

在閱讀SQLite中全文搜索的FTS3 and FTS4擴展的文檔時,我注意到使用了術語「影子表」。報價:什麼是SQLite中的影子表?

對於數據庫中的每個FTS虛擬表,創建三到五個真正(非虛擬)表來存儲基礎數據。這些真正的表被稱爲「影子表」。真正的表名爲「%_content」,「%_segdir」,「%_segments」,「%_stat」和「%_docsize」,其中「%」由FTS虛擬表的名稱替換。

那麼究竟SQLite中的影子表究竟是什麼?它是如何創建和使用的?它與虛擬表或臨時表有什麼不同?

使用Google搜索「SQLite影子表」不會返回任何有意義的結果。

回答

1

虛擬表不是由SQLite核心本身實現的;對這樣的表的所有訪問都被重定向到相應的虛擬表模塊。 這意味着當虛擬表模塊需要實際存儲一些數據時,它必須在同一個數據庫中創建其他表。

創建和使用虛擬表時,影子表是由虛擬表模塊自動創建和使用的。

你不應該看或訪問陰影表;他們是一個實現細節。只是當他們出現在你的數據庫時不要驚訝。

相關問題