SQLite
 sql >> Base de données >  >> RDS >> SQLite

SQLiteStatement exécuter un SELECT / INSERT / DELETE / UPDATE

execute n'est probablement pas plus rapide que executeInsert , pourrait même être plus lent (sur ICS execute appelle executeUpdateDelete et ignore la valeur de retour). Vous devez tester cela, mais je doute que vous trouviez une réelle différence ici.

AFAIK, il est sûr d'utiliser simplement execute si vous n'avez pas besoin de valeurs de retour, mais je ne compterais pas sur cela dans les futures versions d'Android. La documentation dit non, alors peut-être que quelqu'un va changer le comportement pour refléter cela. Les implémentations plus anciennes semblent utiliser execute aussi (par exemple 2.1 delete() code source). Jelly Bean, par exemple, a beaucoup changé dans les coulisses de SQLite, mais cela devrait toujours fonctionner lors de l'utilisation de execute

De plus, si vous n'utilisez pas le même SQLiteStatement maintes et maintes fois tout en reliant les arguments, cela ne vaut probablement pas la peine de l'utiliser. Construire un nouveau à chaque fois que vous appelez le insert normal , update , ... est rapide par rapport à l'accès réel à la base de données et aux E/S disque requises. Les transactions, en revanche, sont très utiles, car la synchronisation de l'état de la base de données sur le disque pour chaque instruction est très lente.