execute
är förmodligen inte snabbare än executeInsert
, kan till och med vara långsammare (på ICS execute
anropar executeUpdateDelete
och kasserar returvärdet). Du måste testa det men jag tvivlar på att du kommer att hitta någon verklig skillnad här.
AFAIK, Det är säkert att använda bara execute
om du inte behöver returvärden men jag skulle inte räkna med att det gäller i framtida Android-versioner. Dokumentationen säger nej, så kanske någon kommer att ändra beteendet för att spegla det. Äldre implementeringar verkar använda execute
också (t.ex. 2.1 delete()
källkod). Jelly Bean till exempel förändrade mycket bakom kulisserna i SQLite, men det borde fortfarande fungera när du använder execute
Dessutom, om du inte använder samma SQLiteStatement
om och om igen medan du bara binder om argumenten är det förmodligen inte värt att använda det. Bygg en ny varje gång du anropar den vanliga insert
, update
, ... metoderna är snabba jämfört med den faktiska databasåtkomsten och den nödvändiga disk I/O. Transaktioner å andra sidan hjälper mycket, eftersom synkronisering av databastillstånd på disken för varje uttalande är väldigt långsam.