Cómo reducir la base de datos sqlite?

Una vez hecho el almacenar todos mis datos en sqlite, alcanza 14 MB ya. Es por eso que me temo que algunas personas no pueden descargar mi aplicación de conexión de área lenta. ¿Hay alguna forma de reducir la base de datos sqlite?

6 Solutions collect form web for “Cómo reducir la base de datos sqlite?”

¿Has probado VACUUM ?

El comando VACUUM reconstruye toda la base de datos. Hay varias razones por las que una aplicación puede hacer esto:

  • A menos que SQLite se ejecute en el modo "auto_vacuum = FULL", cuando se borra una gran cantidad de datos del archivo de base de datos, deja atrás el espacio vacío o las páginas de base de datos "gratuitas". Esto significa que el archivo de base de datos puede ser más grande de lo estrictamente necesario. Ejecutar VACUUM para reconstruir la base de datos recupera este espacio y reduce el tamaño del archivo de base de datos.
  • Las inserciones frecuentes, las actualizaciones y las eliminaciones pueden hacer que el archivo de base de datos se fragmente – donde los datos de una sola tabla o índice están dispersos alrededor del archivo de base de datos. Al ejecutar VACUUM se garantiza que cada tabla e índice se almacene en gran medida de forma contigua dentro del archivo de base de datos. En algunos casos, VACUUM también puede reducir el número de páginas parcialmente llenas en la base de datos, reduciendo el tamaño del archivo de base de datos más …

El comando VACUUM funciona copiando el contenido de la base de datos en un archivo de base de datos temporal y sobrescribiendo el original con el contenido del archivo temporal. Al sobrescribir el original, se utiliza un archivo de registro o archivo de registro WAL de registro como lo haría para cualquier otra transacción de base de datos. Esto significa que cuando VACUUMing una base de datos, tanto como el doble del tamaño del archivo de base de datos original se requiere en espacio libre en disco …

Algunos consejos:

  • SQLite es un poco perezoso para recuperar el espacio no utilizado; Utilice el comando VACUUM o el modo de vacío automático .

  • El formato del datbase negocia la eficacia del espacio para el acceso rápido. Si acaba de volcar el contenido de los datos, ya sea como volcado de SQL o simplemente un archivo CVS para cada tabla de base de datos, probablemente obtendrá archivos más pequeños.

  • Ya sea utilizando archivos databse o datos sencillos, intente comprimirlos.

Intente comprimirlo y usar el flujo zipinput mientras descomprime su base de datos de los activos. De todas formas, androide cerrará su base de datos de 14mb cuando usted crea su apk de todos modos (que se descomprimirá durante la instalación), así que supongo que su apk estará alrededor de 5-6mb de tamaño.

He tenido una experiencia con sqlite donde importé cerca de 3mb de datos, después de lo cual me di cuenta de que los datos tenían problemas de codificación. Dejé caer la tabla, lo volví a hacer y reimporté los datos después de corregir los problemas de codificación. Resultado: un archivo sqlite de 6mb. Mi solución fue eliminar el sqlite db y acaba de hacer uno nuevo. (Sin más detalles sobre lo que está almacenando en su db, esto es todo lo que puedo ofrecer …)

14mb es muy grande para una aplicación de Android todavía, es mejor si puede organizar para que se descargue desde un servidor e integrado en la aplicación.

En su lugar, puede agrupar la aplicación con el archivo de base de datos comprimido (es decir, un archivo .zip) y descomprimirlo cuando se ejecute la aplicación por primera vez (recordando borrar el archivo .zip). Lo mejor es hacer todo esto en una tarjeta SD.

14MB no es tan grande para una aplicación hoy en día. Otra cosa que puedes probar es eliminar índices de tabla innecesarios. Algunos índices pueden estar al acecho en sus tablas, y pueden ocupar mucho espacio. Es posible que tenga que hacer sus consultas de manera diferente.

  • Cómo restablecer la base de datos SqLite en Android?
  • Excepción Sqlite, error de sintaxis
  • Android android.database.CursorIndexOutOfBoundsException: Índice x solicitado, con un tamaño de x
  • ¿Cómo portar un MS Access existente a SQLite para su uso con el desarrollo de aplicaciones para Android?
  • ¿Cuál es el modo de subprocesamiento predeterminado de SQLite en Android?
  • Obtención del siguiente valor AUTO_INCREMENT de una base de datos SQLite
  • ¿Se ha construido SQLite en Android con el tokenizador ICU habilitado para FTS?
  • Android JUnit4 Pruebas - ¿Dónde obtener el contexto de?
  • ¿Cómo agregar y utilizar la extensión de carga de Sqlite en android?
  • Tratando de copiar SQLite DB desde datos a tarjeta SD
  • Android SQLite fts3: ¿Qué debo insertar: valores nulos O cadenas vacías?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.