Quiero insertar a granel unos 700 registros en la base de datos de Android en mi próxima actualización. ¿Cuál es la forma más eficiente de hacer esto? Desde varias publicaciones, sé que si utilizo las declaraciones Insert
, debería envolverlas en una transacción. También hay un post sobre el uso de su propia base de datos, pero necesito esta información para acceder a la base de datos estándar de Android de mi aplicación. Tenga en cuenta que esto solo se haría una vez por dispositivo.Inserción masiva en dispositivo Android
Algunas ideas:
poner un montón de sentencias SQL en un archivo, leerlos en una línea a la vez, y EXEC SQL.
Ponga los datos en un archivo CSV, o JSON, o YAML, o XML, o lo que sea. Lea una línea a la vez y haga
db.insert()
.Averigüe cómo realizar una importación y realizar una importación única de todo el archivo.
Haga una base de datos sqlite que contenga todos los registros, cópielos en el dispositivo Android y de alguna manera combine las dos bases de datos.
[EDIT] Ponga todas las sentencias de SQL en un solo archivo en res/values como una cadena grande. Luego léelos una línea a la vez y ejecute el SQL.
¿Cuál es la mejor manera? ¿Hay otras formas de cargar datos? ¿Son 3 y 4 incluso posibles?
Gracias! Esta optimización aumentó la importación de un grupo de registros en 2 veces. –
Leí el blog y los comentarios. Ambos proporcionaron detalles suficientes para insertar todos mis datos en un par de segundos. Muchas veces mejor que varios minutos. – Knossos
Ahora que 'InsertHelper' está en desuso, nos vemos obligados a usar' SQLiteStatement' –