我有一个保存产品的数据库。
还有一个类别列表。
每个产品属于一个类别。
当产品列表更新时,我运行一个查询数据库的函数updateProductsCategories()
,计算每个类别中的产品数量并返回如下列表:
Food: 20
Drinks: 74
Jackets: 15
我在网页边栏中使用此列表,将类别显示为包含产品数量的链接。
我的假设是我应该在产品更改时运行updateProductsCategories()
,尽管每次加载页面时都不会调用它,但是将其结果放在内存中的对象中并从中获取数据以显示在页面。
这样我每次显示页面时都不会进行不必要的数据库查询,但会使用缓存数据,并且在产品发生变化时会更新,因为它会刷新。
由于对象不大,我现在不需要像Redis那样需要任何其他解决方案。
这是优化应用的正确和常用方法吗?它会在现实世界中为应用程序增加速度吗?
答案 0 :(得分:1)
如果:
然后是的,值得保留在记忆中。每次更新产品时,您可以使缓存的数据无效并再次计算延迟(在需要时)或在更新后立即计算新的统计数据。
要记住的事情:
答案 1 :(得分:0)
优化应用是否是正确且常用的方式?
我认为将此方法用于不会产生大量数据的简单查询更为常见。复杂查询或每个用户会话获取的任何内容最好在共享缓存中使用。正如@icza所提到的,拥有多个服务器实例应该让你重新思考你的解决方案是否是最佳的。
它会在现实世界中为应用程序增加速度吗?
在你的情况下,是的,一点点。