SQLite
 sql >> Database >  >> RDS >> SQLite

SQLiteStatement esegue un SELECT / INSERT / DELETE / UPDATE

execute probabilmente non è più veloce di executeInsert , potrebbe anche essere più lento (su ICS execute chiama executeUpdateDelete e scarta il valore restituito). Devi testarlo, ma dubito che troverai una vera differenza qui.

AFAIK, è sicuro usare solo execute se non hai bisogno di valori di ritorno, ma non conterei su questo nelle future versioni di Android. La documentazione dice di no, quindi forse qualcuno cambierà il comportamento per riflettere questo. Le implementazioni precedenti sembrano utilizzare execute anche (ad es. 2.1 delete() codice sorgente). Jelly Bean, ad esempio, è cambiato molto dietro le quinte di SQLite, ma dovrebbe comunque funzionare quando si utilizza execute

Inoltre, se non usi lo stesso SQLiteStatement più e più volte mentre ricolleghi gli argomenti, probabilmente non vale la pena usarlo. Costruirne uno nuovo ogni volta che chiami il normale insert , update , ... è veloce rispetto all'accesso effettivo al database e all'I/O del disco richiesto. Le transazioni, invece, aiutano molto, poiché la sincronizzazione dello stato del database sul disco per ogni istruzione è molto lenta.