¿Hay DBs para Java que se puedan ejecutar en un modo incrustado con algunas tablas almacenadas en memoria mientras se cargan otras desde el disco? H2 y JavaDB parecen ser los dos líderes para Java DBs y sé que ambos tienen un modo en memoria, pero ¿hacen que carguen toda la base de datos en la memoria o pueden decidir tabla por tabla?In-memory Java DB
Respuesta
Esta es la tabla de caché Preguntas mencionado en el sitio web HSQL.
• tienda no HSQLDB todos los datos en la memoria. ¿funciona la memoria no como resultado?
• almacena todos los datos en la memoria sólo si así lo desea. Por predeterminado, resultados de CREATE TABLE en una tabla de memoria, ya que este es el mejor tipo para tablas más pequeñas. Para tablas más grandes, use CREATE CACHED TABLE y ajuste el tamaño de caché para cumplir con los requisitos de uso de memoria (tan solo 8 MB o más). Consulte el capítulo sobre Gestión del sistema y problemas de implementación de la guía. No existe una regla simple y ninguna imposición por parte de HSQLDB, ya que se permite la máxima flexibilidad usando solo un par de configuraciones. Un uso popular de HSQLDB es para OLAP, ETL y aplicaciones de minería de datos en las que se utilizan grandes asignaciones de memoria Java para almacenar millones de filas de datos en la memoria.
Creo que la tabla en caché ya es lo suficientemente potente para satisfacer sus necesidades.
De http://hsqldb.org/web/hsqlFAQ.html
Comparación entre la tabla de caché y la tabla de memoria
tablas MEMORY y mesas en caché se utiliza generalmente para el almacenamiento de datos. La diferencia entre los dos es la siguiente:
Los datos de todas las tablas MEMORY se leen desde el archivo * .script cuando la base de datos se inicia y se almacena en la memoria. Por el contrario, los datos de las tablas en caché no se leen en la memoria hasta que se accede a la tabla. Además, solo una parte de los datos de cada tabla CACHED se guarda en la memoria, lo que permite tener más datos de los que se pueden guardar en la memoria.
Cuando la base de datos se cierra de la manera normal, todos los datos para las tablas de MEMORIA se escriben en el disco. En comparación, los datos en las tablas CACHED que han cambiado se escriben durante la operación y el cierre.
El tamaño y la capacidad de la memoria caché de datos para todas las tablas CACHED se pueden configurar. Esto permite permitir que todos los datos en tablas CACHED se guarden en caché en la memoria. En este caso, la velocidad de acceso es buena, pero un poco más lenta que las tablas de MEMORIA.
Para las aplicaciones normales, se recomienda que las tablas MEMORY se usen para pequeñas cantidades de datos, dejando tablas CACHED para grandes conjuntos de datos. Para aplicaciones especiales en las que la velocidad es primordial y hay una gran cantidad de memoria libre disponible, las tablas MEMORY también se pueden usar para tablas grandes.
Parece que esta característica aún no es compatible con H2 y Derby (JavaDB). Corrígeme si no es el hecho.
La mayoría de las bases de datos en memoria (como HSQLDB tienen capacidad para almacenar en caché algunos (o todos) los datos en el disco. Por lo general es de bajo nivel lo suficientemente por lo que es transparente para el programador, pero sin duda es configurable
- 1. ¿Puede sqlite ser una base de datos inmemory también?
- 2. Guardar BitSet de Java en DB
- 3. java ORM para solo lectura DB
- 4. consulta de Mongo DB en java
- 5. Consultar un MySQL db usando java
- 6. Java DB/Apache Derby con Android
- 7. leer el archivo db SQLite usando java
- 8. ¿Derby/Java DB está incluido en Java 6?
- 9. Elegir entre Berkeley DB Core y Berkeley DB JE
- 10. la ubicación del DB Java no está correctamente
- 11. La ubicación de Java DB no está configurada correctamente - netbeans
- 12. Error al conectar con Oracle DB desde Java
- 13. GUI para Berkeley DB
- 14. ¿Cuál es la diferencia entre db: test: clone, db: test: clone_structure, db: test: load y db: test: prepare?
- 15. Ejecución de rake db: caer db: crear db: migrate en Heroku Cedar pila
- 16. ¿Cómo contar conexiones db abiertas?
- 17. ¿El motor MySQL InnoDB queue DB DB Triggers automáticamente?
- 18. CA1709 - ¿Deberíamos ignorar esto y usar Db o DB?
- 19. Copiando la tabla en un db a otro db
- 20. Enumeraciones en DB o NO Enums en DB
- 21. rake db: migrar no funciona en mi postgres db
- 22. Complete django DB reinicio
- 23. crear nueva sqlite Db
- 24. Herramientas de comparación DB
- 25. importación de sofá DB
- 26. Mongo Db y Spring
- 27. Haskell DB recomendaciones?
- 28. OrderBook DB Design
- 29. DB Schema para chats?
- 30. ¿Qué DB debo usar?
¿Hay algún documento al que me puedas dirigir? Por lo que vi en el sitio H2, en memoria solo funciona si el DB no es persistente. –
Es posible que desee consultar Terracotta http://www.terracotta.org/ – Bostone
@DroidIn.net Terracotta es comercial? Y es un tipo de memoria caché, no DB, ¿verdad? –