Tenemos unos 7-8 mesas en nuestra aplicación Android que tienen cada uno alrededor de 8 columnas en promedio. Las operaciones de lectura y escritura se realizan en la base de datos y estoy experimentando e intentando encontrar formas de mejorar el rendimiento de la capa de DataAccess. Por lo tanto, ahora he probado los siguientes:Optimización SQLite para la aplicación Android
- Use argumentos posicionales en donde las cláusulas (Razón: para que SQLite hace uso del mismo plan de ejecución)
- Encierre insertos y actualización con las transacciones (Razón: cada operación db . está encerrado dentro de una transacción por defecto al hacerlo se eliminará esa sobrecarga)
- indexación: no he creado ningún índice explícita que no sean los creados por defecto en las columnas de clave primaria y claves únicas (Razón:. indexación mejorará el tiempo de búsqueda)
tengo m enunció mis suposiciones en paranthesis; Por favor, corríjame si estoy equivocado.
Preguntas:
puedo añadir nada más a esta lista? Leí en alguna parte que evitar el uso de db-journal puede mejorar el rendimiento de las actualizaciones. ¿Es esto un mito o un hecho? ¿Cómo se puede hacer esto, si se recomienda?
son transacciones permitidas en SQLite3 agrupar? ¿Cómo afectan el rendimiento? La cosa es que tengo una función que se ejecuta una actualización en un bucle, por lo que, he cerrado el bucle dentro de un bloque de transacción. A veces, esta función se llama desde otro bucle dentro de alguna otra función. La función de llamada también encierra el bucle dentro de un bloque de transacción. ¿Cómo afecta el anidamiento de las transacciones el rendimiento?
El cláusulas donde en mis consultas utilizan más de uno columnas para construir el predicado. Estas columnas pueden no necesariamente por una clave principal o columnas únicas. ¿Debo crear índices en estas columnas también? ¿Es una buena idea crear múltiples índices para dicha tabla?
Gracias por tomarse el tiempo para responder a esta pregunta. – Samuh