首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >针对频繁更改的查询的缓存

针对频繁更改的查询的缓存
EN

Stack Overflow用户
提问于 2010-11-10 02:29:03
回答 1查看 331关注 0票数 2

我们有一个web应用程序,它侦听web服务调用,构造查询,从数据库中提取数据,并将结果发送回客户端。由于我们遇到了一些性能问题,我们希望在服务器端缓存数据。查询很复杂,涉及多个连接。数据库通过web应用程序外部的另一个应用程序更新。我不认为我们可以使用EHCache,因为数据库不是通过相同的应用程序更新的,并且查询参数经常变化。我们可以在这里采用哪些缓存策略来提高性能?注意:查询已经过优化,以获得更好的性能。

EN

回答 1

Stack Overflow用户

发布于 2010-11-10 18:01:58

我不认为我们可以使用EHCache,因为数据库不是通过相同的应用程序更新的

但是您也可以自己做(请参阅SessionFactory上的各种evictXxx方法)。根据更新频率的不同,您仍可能获得好处。

还要注意的是,在其他实现中,EHCache只是一个二级缓存实现(不管你是否使用EHCache,都没有关系,它使用的是与问题相关的二级缓存)。

(...)并且查询参数正在频繁地改变。

那就更烦人了。使用查询缓存可以很好地处理频繁执行的查询(包括参数)。如果重新执行给定的查询(包括参数)是不太可能的事件,那么您不会从查询缓存中获得太多好处。

在这种情况下,我可能会尝试使用Query#iterate()而不是Query#list()。后者以List的形式返回查询结果,前者:

按需初始化作为结果返回的

实体。第一个SQL查询只返回标识符

如果它们不是,它不会表现得更好。

我们可以在这里采用哪些缓存策略来提高性能?

我没有比上面这个更好的建议了。当可能发生缓存命中时,缓存工作。

注意:查询已经过优化,以获得更好的性能。

嗯..。你什么意思?:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4137147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档