execute
probablemente no sea más rápido que executeInsert
, podría incluso ser más lento (en ICS execute
llama a executeUpdateDelete
y descarta el valor de retorno). Necesita probar eso, pero dudo que encuentre una diferencia real aquí.
AFAIK, es seguro usar solo execute
si no necesita valores de retorno, pero no contaría con que eso se cumpla en futuras versiones de Android. La documentación dice que no, por lo que tal vez alguien cambie el comportamiento para reflejar eso. Las implementaciones más antiguas parecen usar execute
también (por ejemplo, 2.1 delete()
código fuente). Jelly Bean, por ejemplo, cambió mucho detrás de escena de SQLite, pero aún debería funcionar cuando se usa execute
Además, si no usa el mismo SQLiteStatement
una y otra vez mientras solo vuelve a vincular los argumentos, probablemente no valga la pena usarlo. Creando uno nuevo cada vez que llama al insert
regular , update
, ... los métodos son rápidos en comparación con el acceso real a la base de datos y la E/S de disco requerida. Las transacciones, por otro lado, ayudan mucho, ya que sincronizar el estado de la base de datos en el disco para cada declaración es muy lento.