0

我们在 H2 数据库中有一个相对较大的表,最多有 1200 万行。该表包含用户需要在 Web 界面上查看的状态信息。用户主要只对最近的几百/千个条目或最近 n 天的条目感兴趣。当然,有时也需要查询所有条目,但我们可以假设这种情况很少发生并且可能需要一些时间。现在我们的主要问题是,我们没有一个完整的服务器作为目标平台,而是一个更嵌入式的解决方案,并且使用这种大小的表,嵌入式系统需要几秒钟的时间来响应并且 web ui(使用 ajax 等)感觉迟缓。

为了使查询更快,我们已经添加了索引、max_row_memory 和缓存。这使得查询速度非常快,但仍然不在我们想要的范围内。据我了解,如果在表上执行 INSERT/UPDATE/DELETE,H2 会刷新表的缓存。应用程序的很大一部分取决于最后 n 行,我正在寻找一种始终将这些 n 行保留在缓存中的方法,这样即使在之前的 INSERT 之后调用了获取最后 n 行的 SELECT 查询,这些行是从缓存中收集的。由于我没有直接在 H2 中找到任何解决方案,我的第一种方法是将缓存实现为应用程序内部的第二级。解决方案没问题,但从设计的角度来看,将它放在 H2 中更有吸引力。有人知道我如何用 H2 解决这个问题吗?

4

1 回答 1

0

H2 不会在修改时刷新缓存。你最好的办法是在你的应用程序上运行一个分析器来查看时间的去向。

于 2013-07-04T13:44:51.443 回答