sqlite中的Fts3使用虚拟表,这意味着它使用内存(ram)来存储数据?我有一个表只想索引一列,但fts3需要索引所有表,这样做会增加存储数据吗?如何索引一列?
答案 0 :(得分:0)
在这种情况下,“虚拟”只意味着这样的表不是“普通”的SQLite表,而是具有自定义实现。
对于数据库中的每个FTS虚拟表,创建三到五个真实(非虚拟)表来存储基础数据。这些真实表称为“影子表”。真实表名为“%_content”,“%_ segdir”,“%_segments”,“%_ stat”和“%_docsize”,其中“%”由FTS虚拟表的名称替换。
FTS表应该被视为索引,而不是表。 您应保留原始表,并仅将文本列放入FTS表中。 (为避免重复存储,您可以使用external content table。)