Actualmente estoy desarrollando una aplicación que tiene el potencial de crear una base de datos muy grande. Había planeado instalar la aplicación en la tarjeta SD para permitir espacio extra. Los tratos recientes aquí me han advertido que tal vez no sea una buena idea. ¿Hay algún paso que pueda tomar para mitigar el peligro de este curso de acción? ¿O hay mejores alternativas?Tratar con una gran base de datos en Android
Respuesta
Este es un comprehensive post sobre el tema (no soy el autor).
Creo que, en general, se debe comunicar que SQLite es solo un mecanismo SQL para acceder a un archivo. Parece que el límite actual del mercado es 50mb para todo el APK. Al instalar en la memoria interna, necesita 2 veces su tamaño de APK. Instalar en sdcard requiere solo el tamaño de APK indicado.
Esto es lo que va a trabajar en contra: 1. ) Desde SQLite es sólo una abstracción sobre el archivo, cuando haces selecciona, inserciones, actualizaciones, etc., se le incurriendo sdcard leer los costes de escritura 2.) He visto mencionar un soft limit of 10000 records basado en el rendimiento. Este artículo es un poco antiguo, por lo que es probable que mejore.
Aparte de eso, probablemente tendrá que configurar algunas pruebas para ver qué es factible. La búsqueda curricular de Google no mostró ningún punto de referencia hasta la fecha.
Como se señaló anteriormente, SQLite tiene la funcionalidad que está buscando, empacada en una pequeña biblioteca. Está diseñado para reemplazar el acceso simple a archivos con acceso a datos transaccionales confiable y recuperable a través de una API SQL. Hay un gran resumen en su main page.
Hay literalmente miles de proyectos que utilizan SQLite. Si su conjunto de datos va a ser muy grande (más de 100-200MB), entonces puede considerar usar Berkeley DB como una opción. Berkeley DB recientemente presentó soporte para un SQL API, que es completamente compatible con SQLite. Además de la funcionalidad proporcionada por el analizador SQLite SQL, el planificador de consultas y el ejecutor, también obtiene la confiabilidad y escalabilidad que Berkeley DB es reconocida. Tenemos varios clientes que felizmente comenzaron con SQLite. Cuando se dieron cuenta de que necesitaban concurrencia adicional, escalabilidad y confiabilidad que no estaban disponibles en SQLite, reemplazaron la biblioteca SQLite con la biblioteca BDB, volvieron a compilar su aplicación y la probaron y ejecutaron en Berkeley en pocos días.
Soy uno de los administradores de productos de Berkeley DB, por lo que soy un poco parcial. :-) Sin embargo, implementamos la BDB SQL API para que pudiéramos ofrecer a los usuarios lo mejor de ambos mundos: la ubicuidad y la facilidad de uso de SQLite combinadas con la concurrencia, fiabilidad y escalabilidad de Berkeley DB. Especialmente con conjuntos de datos más grandes, Berkeley DB puede marcar la diferencia en el rendimiento de la aplicación.
¿Berkeley DB está disponible en todos los teléfonos con Android? ¿Es tan fácil cambiar una aplicación de Android de SQLite a BDB? –
Berkeley DB se puede descargar desde aquí: http://bit.ly/gNWr1C. Tanto BDB como BDB Java Edition se ejecutan en Android. Si desea usar la API de SQL, entonces debe descargar BDB (no BDB JE). Ambos productos están probados y son compatibles con Android y tenemos clientes que ejecutan aplicaciones basadas en BDB en Android. Necesitará construir Berkeley DB y apuntar su aplicación a la biblioteca de BDB. Debes tener cuidado con la biblioteca que estás utilizando, pero una vez que esté configurada, debería ejecutarse.Háganos saber si tiene alguna pregunta enviándolas al OTN Forum (http://bit.ly/g5Fkbz). – dsegleau
Puede encontrar este enlace del Foro OTN útil: http://bit.ly/dZ86xg – dsegleau
Como se mencionó anteriormente, puede utilizar Berkeley DB (no la edición de Java) en Android. Describí los pasos del proceso de compilación cruzada here ya que requiere ajustes menores.
- 1. tratar con gran variedad de lista enlazada
- 2. Cómo tratar con una base de datos de múltiples usuarios
- 3. Cómo tratar eficazmente con una gran cantidad de HTML5 datos de píxeles lona sobre websockets
- 4. Consulta sencilla de indexación en una gran base de datos
- 5. ¿Alguien ha usado una base de datos de objetos con una gran cantidad de datos?
- 6. Base de datos por aplicación VS Una gran base de datos para todas las aplicaciones
- 7. actualizaciones gran base de datos de volumen con un ORM
- 8. Cómo tratar con un objeto de valor que necesita buscar datos en la base de datos
- 9. Rellenar las tablas de la base de datos con una gran cantidad de datos de prueba
- 10. Diseño de base de datos para gran cantidad de datos
- 11. Etiquetas en emacs con una gran base de código
- 12. Inserte una gran cantidad de datos en la base de datos en inserciones muy pequeñas
- 13. Cron trabajo en una gran base de datos con PHP, se necesitan sugerencias
- 14. Android - ¿Existe una base de datos SQLite?
- 15. Android, dos aplicaciones, una base de datos?
- 16. Creación de base de datos de aplicaciones androide con gran cantidad de datos
- 17. Cómo almacenar eficazmente una gran cantidad de filas en una base de datos
- 18. Solución óptima para una gran cantidad de solicitudes en una tabla de base de datos
- 19. base de datos Access en Android
- 20. ¿Cómo puedo almacenar una gran cantidad de datos de una base de datos a XML (problema de memoria)?
- 21. Crear base de datos SQLite en android
- 22. Tratar con comas en CSV
- 23. ¿Puedo optimizar mi base de datos dividiendo una gran tabla en muchas pequeñas?
- 24. Problemas de rendimiento utilizando H2 DB en modo incrustado con gran carga de datos en la base de datos
- 25. ¿Estructura de datos para almacenar una gran cantidad de datos?
- 26. Agregar una base de datos/backend a aplicaciones de Android
- 27. Use una base de datos con Clojure
- 28. búsqueda aproximada en una base de datos
- 29. Base de datos prepoblada de Android
- 30. Manteniendo una base de datos MySQL local sincronizada con una base de datos en vivo (replicación MySQL?)
Nice answer. +1. Tengo una duda de que si el archivo sqlite es externo en Android, ¿cuál será el límite? ¿Es lo mismo que el escritorio o todavía hay alguna limitación ...? – Vinay