Obtener datos de una base de datos vs obtener datos de un mapa hash

En mi androide * proyecto * Tengo que hacer un seguimiento de los detalles del producto de cierto número de productos. Todos los datos de estos productos se almacenan en una base de datos SQLite . Puedo utilizar seleccionar y actualizar en SQLite para realizar realizar un seguimiento de los objetos del producto . Así que puedo almacenar los detalles del producto cuando se cambian. También puedo cargar todos los productos en un mapa del hash o tal estructura de datos al principio y no perder de vista esos objetos del producto. Lo que me importa es por encima de lo que uno es más eficiente y productivo . Alguien me puede ayudar. ¡Gracias!

2 Solutions collect form web for “Obtener datos de una base de datos vs obtener datos de un mapa hash”

Esto depende del número de productos. Un HashMap reside en RAM, una base de datos reside en el disco.

Esto también depende del número de consultas por segundo y la naturaleza de las consultas. Los desarrolladores de bases de datos han puesto mucho esfuerzo para apoyar la indexación y el filtrado; Si usted necesita eso, la reutilización es mejor que reinventar.

Sea cual sea el enfoque que elija, debe recordar que un proceso de aplicación de Android puede morir en cualquier momento (por ejemplo, cuando se necesita memoria para otro proceso), y su código está garantizado sólo para recibir onPause () (y no onDestroy () o onStop ) , Vea el ciclo de vida de la actividad). Si es necesario, la aplicación se reiniciará más tarde, pero todos los datos guardados en RAM (y no guardados) se perderán. Por lo tanto, en onPause () o en onSaveInstanceState () (para qué son los bundles ) debe guardar el estado de la aplicación. En su caso esto puede significar tener que guardar el HashMap y todas las estructuras de datos auxiliares.

OTOH, si el número de productos es pequeño (y se espera que siga siendo pequeño), una base de datos puede ser una exageración; Si sólo tiene que elegir uno de los 10 elementos, escribir un bucle es más rápido que hacer todo el soporte de base de datos.

Una nota más importante: una actividad es un controlador desde el punto de vista de MVC (y en cuanto a la vista , por lo general crear y XML y reutilizar las clases de marco existentes, aunque podría programar controles personalizados). Una actividad se vuelve a crear cada vez que cambia la orientación del dispositivo y en algunos otros casos. Pero sus datos pertenecen a la parte modelo . Deben sobrevivir al cambio de orientación. Así que no deben ser propiedad de una Actividad.

Contestar

a. HashMap, sin duda, ganar más de sqlite en términos de operaciones de memoria, por lo tanto, se ejecutará más rápido. Pero no le proporcionará consistencia, siendo Mobile un entorno volátil, el sistema operativo está destinado a matar una aplicación en segundo plano, o en primer plano si no se cumplen sus requisitos de memoria, en estos escenarios puede perder todas las actualizaciones importantes realizadas antes de comprometerse a Un almacenamiento permanente.

segundo. SQLite es lento en comparación con el Mapa, pero es fiable que se asegurará de que todos los compromisos a sus datos se guarda correctamente, a pesar de que la aplicación se bloquea db garantizará a restaurar los datos que se comprometieron antes de eso, Mapa carece ciertamente de esta funcionalidad.

do. Teniendo en cuenta un escenario cuando se han cargado los datos en un MAP para permitir una operación más rápida y realizar la sincronización con la base de datos cada vez que grabe cualquier delta a sus datos, este escenario es muy plausible y puede funcionar excelentemente si está diseñado correctamente.

Para concluir, debe proceder con la operación de DB + MAp, esto hará que su aplicación se ejecute sin problemas si hay un montón de operación de base de datos en cuestión, sólo tiene que asegurarse de mantener datos + aplicación separada a eleborate no hacer su app depende de la carga de los datos inicialmente .

  • Recyclerview + Proveedor de contenido + CursorLoader
  • Base de datos LocalStorage vs Sqlite
  • Mostrar datos SQLite en RecyclerView
  • ¿Soporta Android JDBC?
  • Actualización de Android SQLite sin perder datos
  • Devolver todas las columnas de una tabla SQLite en Android
  • SQLite de Android "ENTRE" no incluye o devuelve todos los registros
  • No se puede abrir la base de datos-Android
  • Unir tablas en android
  • Error al descifrar en java
  • Mantenimiento de un ListView donde cada elemento de lista tiene una relación de uno a muchos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.