SQLite
 sql >> Datenbank >  >> RDS >> SQLite

SQLiteStatement führt ein SELECT / INSERT / DELETE / UPDATE aus

execute ist wahrscheinlich nicht schneller als executeInsert , könnte sogar langsamer sein (auf ICS execute ruft executeUpdateDelete auf und verwirft den Rückgabewert). Sie müssen das testen, aber ich bezweifle, dass Sie hier einen wirklichen Unterschied finden werden.

AFAIK, es ist sicher, nur execute zu verwenden Wenn Sie keine Rückgabewerte benötigen, würde ich mich jedoch nicht darauf verlassen, dass dies in zukünftigen Android-Versionen zutrifft. Die Dokumentation sagt nein, also wird vielleicht jemand das Verhalten ändern, um dies widerzuspiegeln. Ältere Implementierungen scheinen execute zu verwenden auch (zB 2.1 delete() Quellcode). Jelly Bean zum Beispiel hat sich hinter den Kulissen von SQLite stark verändert, aber es sollte immer noch funktionieren, wenn execute verwendet wird

Außerdem, wenn Sie nicht dasselbe SQLiteStatement verwenden Immer und immer wieder, während Sie nur die Argumente neu binden, lohnt es sich wahrscheinlich nicht, sie zu verwenden. Jedes Mal, wenn Sie den regulären insert aufrufen, wird ein neuer erstellt , update , ... Methoden ist schnell im Vergleich zum tatsächlichen Datenbankzugriff und den erforderlichen Platten-I/Os. Transaktionen hingegen helfen sehr, da das Synchronisieren des Datenbankstatus auf der Festplatte für jede Anweisung sehr langsam ist.