什么是虚拟表自动生成表的使用

时间:2017-07-30 10:23:13

标签: sql sqlite view virtual-table

我正在使用sql查询进行一些调试,执行后创建虚拟表:

sqlite> CREATE VIRTUAL TABLE email_fts USING fts3(subject, body, "to", "from");

&安培;检查架构,其中显示了对创建的虚拟表的附加3个表引用。

sqlite> .schema

CREATE VIRTUAL TABLE email_fts USING fts3(subject, body, "to", "from");

CREATE TABLE 'email_fts_content'(docid INTEGER PRIMARY KEY, 'c0subject', 'c1body', 'c2to', 'c3from');

CREATE TABLE 'email_fts_segments'(blockid INTEGER PRIMARY KEY, block BLOB);

CREATE TABLE 'email_fts_segdir'(level INTEGER,idx INTEGER,start_block INTEGER,leaves_end_block INTEGER,end_block INTEGER,root BLOB,PRIMARY KEY(level, idx));

任何人都请解释:

  • 使用fit_content / segments / segdir,
  • 谁使用这些。
  • 使用目的肯定与搜索有关,但这些是如何相互关联的。

1 个答案:

答案 0 :(得分:0)

documentation

中记录了这一点
  

对于数据库中的每个FTS虚拟表,创建三到五个真实(非虚拟)表来存储基础数据。这些真实的表被称为"影子表"。
  [...]