是否有任何用于Java的数据库,可以在嵌入式模式下运行,某些表在存储在内存中时从磁盘加载其他数据? H2和JavaDB似乎是Java DB的两个领导者,我知道他们都有内存模式,但是他们是否会让您将整个数据库加载到内存中,还是可以根据表格来决定?内存中的Java数据库
回答
这是缓存表常见问题在HSQL网站提及。
•不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)似乎还不支持此功能。纠正我,如果这不是事实。
大多数内存数据库(如HSQLDB有缓存部分(或全部)数据到磁盘的能力,通常是足够低的水平,因此是透明的程序员,但肯定是配置
- 1. 在Java中创建内存中sqlite数据库的示例(Android)?
- 2. Excel中的内存数据库
- 3. 100%内存中的HSQL数据库
- 4. 内存数据库中的Postgresql django
- 5. Python中的内存数据库
- 6. 内存数据库中的Rails
- 7. PostgreSQL在内存数据库
- 8. Spring内存数据库
- 9. 恢复内存数据库
- 10. java h2内存中数据库错误:表未找到
- 11. SQLite.NET内存(:内存:)数据库比基于文件的数据库慢很多
- 12. Datamapper在内存数据库中
- 13. 在内存数据库设计中
- 14. 实时或内存数据库中
- 15. 内存中数据库关闭()
- 16. derby在内存数据库+ junit中
- 17. 具有SQL Server支持的Java内存数据库
- 18. 从C#中的内存中访问数据库中读取数据库
- 19. Hazelcast缓存数据库数据缓存的Java
- 20. 内存数据库作为数据库故障的备份
- 21. 如何查看环回内存数据库中的数据?
- 22. OracleCachedRowSet更新内存中的数据而不写入数据库
- 23. 作为数据库的Java缓存?
- 24. 在python中创建带有数据库名称的内存中sqlite数据库
- 25. .net/PowerShell良好的内存数据库?
- 26. 对内存数据库的建议
- 27. 作为数据库的内存流
- 28. 非序列化的内存数据库
- 29. 替代TimesTen的内存数据库
- 30. 不使用数据库的内存类
是否有任何文件可以指向我?从我在H2网站上看到的内容来看,只有DB不持久时,内存才有效。 – 2009-12-21 07:42:28
你可能想看看Terracotta http://www.terracotta.org/ – Bostone 2009-12-22 05:58:02
@DroidIn。网秦兵马俑是商业?它是一种缓存而不是DB,对吧? – 2011-08-18 22:55:24