将查询结果存储在Application.cfc中的好或坏做法

时间:2011-06-06 23:02:16

标签: coldfusion scope coldfusion-8 application.cfc

在我的应用程序中,我有一个侧边栏(在每个页面上),显示一个小公司的职位空缺列表。在Application.cfc中运行查询并以某种方式存储结果或是否有更智能的方法来运行查询并将结果存储在其他位置的其他位置是明智的吗?

服务器资源的最佳用途是什么?

提前致谢。

编辑:我正在使用CF8。更新可能每月进行一次。

4 个答案:

答案 0 :(得分:3)

你有CF9吗?我将使用应用程序范围,使用cachePut()缓存查询或缓存对象中的结果HTML,并使用cacheGet()调用所需的缓存对象。然后,只要您管理更新该信息(手动CRUD或使用此信息的Web服务等),只需确保在感知更改时刷新该缓存对象。最初在onApplicationStart()中填充缓存对象,你应该好好去。

答案 1 :(得分:2)

在侧边栏调用的cfquery上使用了cachedwithin。

答案 2 :(得分:0)

如果结果取决于用户会话,则会想到会话范围。应用程序范围只会在服务器(重新)启动时刷新,对吗? 就资源而言,服务器在首次请求时仅应加载一次结果(应用程序范围)显然更好。但很明显,这些结果会很快(或很快)变得陈旧。

如果您担心向数据库发送的查询太多,您可以考虑缓存结果。

既然你谈到了一家小公司,也许你应该首先重新加载每个会话的内容,看看数据库服务器上的负载是否失控。

答案 3 :(得分:0)

职位空缺多久会改变一次?您可以将它们存储在应用程序中,并有一个计划任务来定期重新运行查询。