Normale Tabelle vs virtuelle Tabelle SQLite DB

8

Android Entwicklerhandbuch scheint FTS3 in SQLite DB vorzuziehen, wenn eine Suche benötigt wird. Ich lese die FTS3-Beschreibung und es scheint, dass es eine virtuelle Tabelle anstelle einer permanenten Tabelle erstellt. Was ist der Unterschied zwischen virtueller Tabelle (FTS3) und normaler Tabelle in SQLite? Ist die virtuelle Tabelle dauerhaft und bleibt auch nach dem Beenden der App in der Datenbank? Danke.

    
androidnerd 26.12.2012, 14:49
quelle

2 Antworten

5

Eine virtuelle Tabelle ermöglicht der SQLite-Engine den Zugriff auf den Inhalt eines Datenspeichers mithilfe von (normalerweise) nicht SQLite-Code. Dadurch kann der Entwickler SQLite eigene Funktionalität hinzufügen.

Im Falle von FTS war es ursprünglich kein Teil der SQLite-Engine. Es war Code, der extern zu SQLite war, der dem Endbenutzer erlaubte, eine Volltextsuche nach Daten durchzuführen.

Ist eine virtuelle Tabelle dauerhaft? Das hängt von der Implementierung ab. Für FTS sind die Daten permanent. Sie könnten jedoch eine Implementierung erstellen, die RAM für den Speicher verwendet - dies würde offensichtlich verschwinden, wenn die Anwendung beendet wird.

Mehr zu virtuellen Tischen: Ссылка

    
chue x 26.12.2012 15:38
quelle
0

Ich denke, es ist genauer zu sagen, dass der API-Leitfaden zum Erstellen einer Suchoberfläche feststellt, dass FTS3 die Volltextsuche viel schneller als LIKE durchführt, abhängig von den Eigenschaften der Suche . Zum Beispiel erlaubt eine reguläre SQLite-Abfrage, die LIKE verwendet, Platzhalter, während eine FTS3-Abfrage, die MATCH verwendet, dies nicht tut. Wenn Sie nach Tokens suchen möchten, können Sie mit FTS3 gehen. Wenn du ein unpräzises Spiel machst, musst du definitiv mit LIKE gehen.

    
Joe Malin 26.12.2012 21:34
quelle

Tags und Links