加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

数据库 – 内存中的Java DB

发布时间:2020-12-12 06:42:00 所属栏目:MsSql教程 来源:网络整理
导读:是否有任何可以在嵌入模式下运行的 Java数据库,其中一些表存储在内存中,同时从磁盘加载其他表? H2和JavaDB似乎是Java DB的两个领导者,我知道它们都有内存模式,但它们是否会让你将整个数据库加载到内存中,还是可以逐个表决? 解决方法 这是HSQL网站中提到的缓
是否有任何可以在嵌入模式下运行的 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)还不支持此功能.如果不是事实,请纠正我.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读