2012-02-14 9 views
8

No estoy seguro de si usar colecciones Java o alguna base de datos en memoria (H2 o HSQLDB, probablemente sean las más rápidas). Necesito buenos resultados de rendimiento: habrá cientos de objetos/filas, no se realizará JOIN o se realizarán consultas más complejas.Colecciones Java vs rendimiento de la base de datos en memoria

estoy realmente considerando DB en memoria, debido al tamaño limitado de almacenamiento dinámico de Java - los objetos que estoy trabajando pueden ser bastante grandes y también habrá una gran cantidad de ellos (cientos como he mencionado)

¿crees que es una buena idea usar una base de datos en memoria para una gran cantidad de datos?

+2

en términos modernos, cientos de objetos no son mucho. Cuando dices que los objetos serán grandes, ¿qué tan grande? – Sheriff

+3

Cientos de objetos son risibles, incluso si cada objeto tiene cientos de campos. Además, la memoria tiene que venir de algún lado, y un DB probablemente agregará algo de sobrecarga. – delnan

+0

Bueno, _hundreds_ ... eso puede ser una exageración ... simplemente - puede haber muchos objetos. – Igor

Respuesta

3

Cientos de objetos de 10 KB todavía son solo unos pocos MB. Mantenlo simple es mi sugerencia. Cientos de miles de objetos de 1 KB todavía encajarán fácilmente en una JVM de 32 bits.

No utilizaría una base de datos de memoria hasta que ingrese a los GB de datos. Si tiene cientos de GB, su única opción es usar una base de datos de algún tipo.

Descargo de responsabilidad: Yo uso en las bases de datos de memoria e incluso he escrito uno o dos.

3

Intente hacerlo con colecciones. Si luego te das cuenta de un problema, aún puedes cambiarlo. Todo es cuestión de abstraer la implementación para que sus algoritmos no esperen lo uno o lo otro. (Sin embargo, otra diatriba de "optimización temprana es malévola")

2

Como han dicho otros, "cientos" realmente no es mucho, y ahora parece que incluso se dice que potencialmente son menos de cientos. Y si el tamaño del montón es un problema, puede Increase the JVM Heap Size

Cuestiones relacionadas