数据库 – 内存中的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)还不支持此功能.如果不是事实,请纠正我. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 使用.NET 4.5连接到SQL Server Azure时发生握手异常
- sql-server – OUTPUT INTO子句中可以使用哪些列?
- sql-server – 确定SQL Server中是否存在临时表的最佳方法是
- sql-server – 停止Microsoft SQL Server实例时运行查询会发
- 多个insert语句android sqlite
- SqlServer批量备份多个数据库且删除3天前的备份
- sql – 在Oracle中,如何将诸如1之类的数字转换为字符串,例如
- sql-server – 当两个表非常相似时,它们何时应该组合在一起
- 微服务:数据库和微服务实例
- sql – 如何将今天的日期返回到Oracle中的一个变量
