是否有可在嵌入模式与一些表被存储在存储器内,同时从磁盘加载其他运行为Java任何DB的? H2和JavaDB之外似乎是对Java DB的两位领导人,我知道他们都有一个内存模式,但是他们让你载入整个数据库到内存或者你可以决定一个表一个表的基础?

有帮助吗?

解决方案

此在HSQL网站缓存表FAQ提及。

<强>•是否HSQLDB存储的所有数据在内存中。不存储作为结果用完吗

•它仅存储,如果你想在内存中的所有数据。默认情况下,在创建一个存储表的表的结果,因为这是小表的最佳类型。对于较大的表,请使用CREATE缓存的表和调整缓存大小以适合您的内存使用要求(低至8MB左右)。查看该指南的系统管理和部署问题的章节。有没有简单的规则,并作为最大的灵活性,使用一对夫妇只设置允许HSQLDB的部分没有实行。一个流行的使用HSQLDB的是OLAP,ETL,并在庞大的Java内存分配用于存放数百万行数据的内存中的数据挖掘应用程序。

我觉得缓存表已经足够强大,以满足您的需要。

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

<强>高速缓存表和存储器表说的比较

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

当数据库启动并存储在存储器中的所有存储器表中的数据被从* .script文件中读取。与此相反的缓存表中的数据,直到访问表时不会被读入内存中。此外,仅对于每个高速缓存表中的数据的一部分保存在内存中,允许与多个数据表比可以在内存中保持。

当数据库处于正常方式关闭,全部为MEMORY表中的数据被写入到磁盘。相比之下,已经改变在CACHED表中的数据在操作过程中和在关机时写出。

对于所有的CACHED表的大小和数据高速缓冲存储器的容量是可配置的。这使得有可能允许在缓存表中的所有数据缓存在内存中。在这种情况下,存取的速度比MEMORY表好,但稍微慢一些。

有关正常的应用,建议MEMORY表用于少量数据,留下大数据集的CACHED表。对于其中速度是最重要和大量的自由内存可用特殊的应用,MEMORY表可用于大的表,以及

看来这一功能不受H2和德比(JavaDB之外)被支持。纠正我,如果这不是事实。

其他提示

大多数内存数据库(例如 HSQLDB 必须缓存某些能力(或所有)数据到磁盘上。一般它是足够低的水平,以便它是透明的,以编程,但肯定是可以配置

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top