Pregunta

¿Hay DB para Java que pueden ejecutarse en un modo integrado con algunas tablas se almacenan en la memoria durante la carga de los demás desde el disco? H2 y JavaDB parecen ser los dos líderes para Java DB y sé que ambos tienen un modo en memoria, pero no hacen que hacen que cargue toda la base de datos en la memoria o se puede decidir en cada mesa por mesa?

¿Fue útil?

Solución

Esta es la tabla de caché FAQ menciona en el sitio web HSQL.

• ¿HSQLDB tienda de todos los datos en la memoria. No se quede sin memoria como resultado?

• Almacena todos los datos en la memoria sólo si se desea. Por defecto, crear resultados TABLE en una tabla de memoria, ya que este es el mejor tipo de tablas más pequeñas. Para las tablas más grandes, utilice CREATE TABLE en caché y ajustar el tamaño de la caché a la habitación sus necesidades de uso de memoria (tan poco como 8 MB o menos). Véase el capítulo de gestión del sistema y problemas de implementación de la Guía. No hay una regla simple y sin imposición por parte de HSQLDB como se permite la máxima flexibilidad usando sólo un par de ajustes. Un uso popular de HSQLDB es para OLAP, ETL, y las aplicaciones de minería de datos donde se utilizan grandes asignaciones de memoria Java para alojar millones de filas de datos en la memoria.

Creo tabla caché ya es lo suficientemente potente como para satisfacer sus necesidades.

http://hsqldb.org/web/hsqlFAQ.html

Comparación entre la tabla de caché y la tabla de memoria

mesas de memoria y tablas almacenadas en caché se utilizan generalmente para el almacenamiento de datos. La diferencia entre los dos es como sigue:

Los datos de todas las tablas se lee la memoria desde el archivo * .script cuando se inicia y se almacena en la memoria de la base de datos. Por el contrario los datos para las tablas de caché no se lee en la memoria hasta que se accede a la tabla. Por otra parte, sólo una parte de los datos para cada tabla en caché se mantiene en la memoria, lo que permite tablas con más datos que pueden ser almacenados en memoria.

Cuando la base de datos se cierra de manera normal, todos los datos de las tablas MEMORY se escriben en el disco. En comparación, los datos de las tablas almacenadas en caché que ha cambiado son escritos durante el funcionamiento y al apagar el equipo.

El tamaño y la capacidad de la memoria caché de datos para todas las tablas almacenadas en caché es configurable. Esto hace que sea posible para permitir que todos los datos de las tablas almacenadas en caché para almacenar en caché en la memoria. En este caso, la velocidad de acceso es bueno, pero un poco más lento que las tablas MEMORY.

Para aplicaciones normales, se recomienda que las tablas de memoria se utilizan para pequeñas cantidades de datos, dejando las tablas en caché para grandes conjuntos de datos. Para aplicaciones especiales en las que la velocidad es de suma importancia y una gran cantidad de memoria libre disponible, tablas de memorias puede ser utilizado para grandes mesas así.

Parece que esta característica no está soportada por H2 y Derby (JavaDB) todavía. corrígeme si no es el hecho.

Otros consejos

La mayoría de las bases de datos en memoria (como HSQLDB tener capacidad para almacenar en caché algunos (o todos ) datos en el disco. por lo general es lo suficientemente bajo nivel por lo que es transparente para el programador, pero sin duda es configurable

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top