数据库 – 内存中的Java DB

前端之家收集整理的这篇文章主要介绍了数据库 – 内存中的Java DB前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否有任何可以在嵌入模式下运行的 Java数据库,其中一些表存储在内存中,同时从磁盘加载其他表? H2和JavaDB似乎是Java DB的两个领导者,我知道它们都有内存模式,但它们是否会让你将整个数据库加载到内存中,还是可以逐个表决?

解决方法

这是Hsql网站中提到的缓存表FAQ.

•HsqlDB是否将所有数据存储在内存中.内存不会因此而耗尽吗?

•仅在您需要时将所有数据存储在内存中.默认情况下,CREATE TABLE会生成内存表,因为这是较小表的最佳类型.对于较大的表,请使用CREATE CACHED TABLE并调整缓存大小以满足您的内存使用要求(最小为8MB).请参阅“指南”的“系统管理和部署问题”一章. HsqlDB没有简单的规则和强加,因为只使用几个设置就可以实现最大的灵活性. HsqlDB的一种流行用途是用于OLAP,ETL和数据挖掘应用程序,其中巨大的Java内存分配用于在内存中保存数百万行数据.

我认为缓存表已经足够强大,可以满足您的需求.

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

缓存表和内存表之间的比较

MEMORY表和CACHED表通常用于数据存储.两者的区别如下:

数据库启动并存储在内存中时,将从* .script文件中读取所有MEMORY表的数据.相反,在访问表之前,不会将高速缓存表的数据读入内存.此外,只有每个CACHED表的部分数据保存在内存中,从而允许表中包含的数据多于可以保存在内存中的数据.

数据库以正常方式关闭时,MEMORY表的所有数据都会写入磁盘.相比之下,已更改的CACHED表中的数据在操作期间和关闭时被写出.

所有CACHED表的数据高速缓存的大小和容量都是可配置的.这使得可以允许CACHED表中的所有数据缓存在内存中.在这种情况下,访问速度很好,但比MEMORY表稍慢.

对于普通应用程序,建议将MEMORY表用于少量数据,而将CACHED表用于大型数据集.对于速度至关重要并且可用大量可用内存的特殊应用程序,MEMORY表也可用于大型表.

似乎H2和Derby(JavaDB)还不支持功能.如果不是事实,请纠正我.

猜你在找的MsSQL相关文章