2017-07-30 1 views
0

je faisais du débogage avec des requêtes SQL, exécutée comme suit pour créer un tableau virtuel:Quelle est l'utilisation de tables automatique de la table virtuelle générée

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

& schéma vérifié où il montrant 3 références de table supplémentaires créés table virtuelle .

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)); 

Quelqu'un s'il vous plaît expliquer:

  • ce qui est de l'utilisation fits_content/segments/segdir,
  • qui utilisent ces derniers.
  • But de l'utilisation sûrement être lié à la recherche, mais comment ceux-ci liés les uns aux autres.

Répondre

0

Ceci est documenté dans le documentation:

Pour chaque FTS table virtuelle dans une base de données, trois à cinq tables réelles (non virtuels) sont créés pour stocker les données sous-jacentes. Ces vraies tables sont appelées "tables fantômes".
[...]