2011-12-28 41 views
15

Desarrollaré una aplicación para Android con una gran cantidad de datos (archivos json con algunas filas y CSV para datos gráficos con muchas filas), estos datos cambian cada 5 minutos y reemplazan todos los datos anteriores (o principalmente).Archivo JSON VS SQLite android

¿Cuáles son los mejores enfoques para diseñar esto? Tengo 2 opciones:

  • guardar todos los datos en una base de datos SQLite, y sincronizar este por un IntentService.

  • guarde los datos en archivos json y csv y reemplace esto cada 5 minutos.

¿Cuál enfoque será el mejor rendimiento? Esto considerando el tiempo para analizar los archivos, ordenar los datos, el tiempo de descarga y la coherencia de los datos.

¿Alguna otra idea?

PD: Necesito un sistema de caché también, en caso de que si no tengo internet y necesito los datos almacenados anteriores

+0

¿De dónde vas a obtener muchos datos? –

+0

datos financieros de nuestro servidor web –

Respuesta

12

Sqlite se usa principalmente cuando desea guardar y usar datos en el futuro. En su caso, los datos cambian cada 5 minutes por lo que es mejor tener JSON porque cada vez que haga Database connectionstore y retrieve después de 5 minutes llevará algún tiempo.

ACTUALIZACIÓN:

que también tenían la misma aplicación en la que los datos fueron cambiando cada vez. En ese caso, utilicé Map<K, V> y ArrayList para mantener los valores, porque como los datos cambian cada vez, creo que no es posible almacenar los datos en Sqlite cada vez. Se necesita mucho tiempo para realizar la conexión de BD, almacenar, recuperar y actualizar los datos en Sqlite.

-4

Propósito de JSON y SQLite es completamente diferente el uno del otro

  • JSON = se utiliza para enviar y recibir datos entre el servidor y el cliente.
  • SQLite = se usa para almacenar datos.
+12

JSON se puede utilizar para almacenar la fecha. es decir. Es común para el archivo de configuración ... – user457015

+2

REST se utiliza para enviar y recibir datos entre el servidor y el cliente. JSON y SQLite almacenan datos. Pero sí, puede publicar datos JSON con métodos RESTful más rápido. –

+0

JSON se utiliza para almacenar datos también. – VSG24

0

Idealmente, esto debería depender de si necesita los datos anteriores, para tal vez compararlos con los datos actuales, etc. Como regla general, utilizo SQLite cuando necesita que los datos sean almacenados y recuperados en una etapa posterior. En caso de que los datos sean solo para visualización, preferiría mantenerlos en la memoria del programa. Eso sí, esto no implica la operación de archivos.

+0

Necesito un sistema de caché también, en caso de que si no tengo internet y necesito los datos almacenados previamente –

+0

está bien, no sobreescriba/elimine datos a menos que obtenga los nuevos datos en el formato correcto. De esta forma, sus datos antiguos continuarán estando en la memoria y siendo utilizados. – PravinCG

3

recomiendo el uso de JSON o algún tipo de serialización de objetos a menos que:

  • Es necesario ÁCIDO cumplimiento para operaciones de escritura
  • Es necesario informar contra los datos que pueden suponer la reproducción de los datos a un RDBMS externo o
  • desea unirse a los cómplices en el abuso/uso indebido de las bases de datos, como se ve comúnmente en estos momentos
+0

Hmmm ... alguien me apoyó en esto, presumiblemente en el último punto también. Quizás necesito comenzar un movimiento. De todos modos, la buena serialización de objetos a menudo es el camino a seguir. – SPB

7

Ventajas de SQLite :

  • Los cambios son el ácido
  • Puede hacer peticiones complejas con mayor rapidez (por ejemplo, "dame solo los campos A, B de elementos con (C/D)> E")
  • Apostaría más compacto para datos grandes (los enteros se almacenan como enteros en lugar de una cadena de dígitos individuales)
  • Solo uno el archivo
  • puede combinar los datos antiguos con los nuevos datos de forma fácil
  • puede actualizar los datos actuales, incluso mientras que la usa
  • concurrencia puede ser manejado

Ventajas de JSON/CSV:

  • más fácil de depurar (texto plano)
  • más rápido hacer toda una actualización (copiar el nuevo archivo + borrar el viejo)

Para la pregunta original todo el borrar/reemplazar las marcas de datos JSON/CSV el ganador.

Sin embargo, si la aplicación fue para recuperar datos parciales cada 10s y combinarlos/actualizarlos con el anterior, SQLite sería una mejor opción.