2016-11-02 1 views
0

Ich habe versucht, in der SQLite-Datenbank mit dem folgenden Code zu suchen:Wie in Android SQLite-Datenbank mit schnellen Weg suchen?

Cursor cusror; 
    cursor=db.rawQuery("SELECT * FROM "+ Contactsnew.TABLE02 + " WHERE " 
      + Contactsnew.userid + " = " + Contactsnew.userId + " AND " + 
     Contactsnew.TITLE + 
      " LIKE '"+search.getText()+"%'"); 

seine Arbeit erfolgreich, aber in großen Datenbank ihre Arbeit langsam. Ich suchte die letzten Tage, um zu finden, dass dritte Bibliothek mit meiner eigenen Datenbank arbeitet (kopiert von den Anlagen zur sqlite Datenbank).

Ich finde die besten fünf Bibliotheken in this article ich folgte jeder Bibliothek, aber was ich finde, jede Datenbank arbeitet nur mit der Datenbank, die von sich selbst nicht mit der bestehenden Datenbank erstellt (bereits von Assets kopiert).

jede Hilfe, irgendeine dieser Bibliothek zu benutzen und sie auf meine eigene Datenbank oder irgendeine andere Bibliothek zu verweisen, um mir zu helfen.

Dank

+0

Sie können [Trie] (https://www.toptal.com/java/the-trie-a-neglected-data-structure) verwenden –

+0

Bitte geben Sie mir einen Link .thanks @AshrafulIslam –

+0

https: // www.toptal.com/java/the-trie-a-negleted-data-structure –

Antwort

1

Ich schlage vor, vorbereitete Anweisungen zu erstellen und sie erneut zu verwenden. Es gibt eine ausgezeichnete answer on Stack Overflow wie man das macht. Ziehen Sie in Betracht, die von der Abfrage zurückgegebenen Spalten zu reduzieren, wenn nicht alle Spalten benötigt werden. Ziehen Sie darüber hinaus in Betracht, Indizes für relevante Spalten zu erstellen. test würde der Tabellenname und id ein Spaltenname:

CREATE INDEX idx01 ON test(id); 

Als letztes Mittel es wert sein könnte versuchen, die LIKE vollständig und auf den regex Test zu entfernen, während über den Cursor laufen.

1

Sie müssen sicherstellen, dass bestehende Datenbank das gleiche Format der Daten als neue Datenbank hat man hinzufügen. Wahrscheinlich die einfachste Lösung hier - schreiben Sie ein "Migrationsprogramm", das vorhandene Daten extrahiert und in einer neuen Datenbank speichert. Um Abfragen zu beschleunigen, speichern Sie verschiedene Aspekte von Daten in separaten Tabellen (nicht alles in einer einzelnen Tabelle), oder, wenn Ihre Daten viele Abhängigkeiten haben, versuchen Sie NoSql-Datenbank (Realm), die keine Tabellen verwenden.