sql >> Base de Datos >  >> RDS >> SQLite

SQLiteStatement ejecuta SELECCIONAR / INSERTAR / ELIMINAR / ACTUALIZAR

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.