【发布时间】:2015-06-05 07:39:39
【问题描述】:
我目前正在使用一个更大的数据库,虽然我没有具体问题,但如果有人有任何建议,我希望得到一些建议。
数据库为 2.2 GB(重新创建/压缩后)。它包含大约 50 个表。其中一个表包含一个 blob 和一些元数据。它目前有大约 22000 行。如果我从表中删除 blob(UPDATE table SET blob = null),则数据库大小将减少到大约 200 兆字节(重新创建/压缩后)。元数据被大量访问,但并不经常需要 blob。
我目前使用的数据库网址是:
jdbc:h2:D:/data;AUTO_SERVER=true;MVCC=true;CACHE_SIZE=524288
它在我们的 Java VM 中运行,该 VM 具有 4GB 最大堆。
我想知道的一些事情:
- 在单独的进程中运行 H2 是否会对性能产生任何影响(无论好坏)?
- 将 blob 放在与元数据 1-1 关系的单独表中是否有帮助?我可以想象它会有助于缓存,而不是让 blob 挡道?
- 互联网上似乎存在分歧,是在数据库中包含 blob,还是将它们写入文件系统上的文件,并在数据库中提供链接。这里有任何针对 H2 的建议吗?
【问题讨论】: