查询DB或Cache小结果集的性能更好?

use*_*867 0 asp.net asp.net-mvc

假设我需要从数据库中填充4或5个带有项目的下拉列表.每个下拉列表中都有<15个项目.这些物品几乎不会改变.

现在我可以在每次访问页面时查询数据库,或者我可以从自定义类中获取值,该类将检查它们是否已存在于ASP.Net的缓存中,并且只有在它们不查询数据库以更新缓存时.

这对我来说是微不足道的,但我不确定性能是否会更好.我认为它会(尽管不太可能是巨大的).

你怎么看?

Jus*_*tin 6

在处理性能问题时,您应始终:

  1. 以最简单的方式做事(避免过早优化)
  2. 使用设定的性能目标对您的代码进行性能测试(例如,在N个concurent用户负载下的200ms响应时间)
  3. 然后,如果您的代码没有执行,则分析您的代码以确定什么是缓慢的,并分析您提出的性能修复程序,以准确衡量真实世界的性能变化.

说完然后是的,你所建议的似乎是明智的(你通常希望内存缓存比数据库更快),但它还取决于返回的数据,应用程序的内存负载,查询有多贵,查询参数是什么等等......

您应该在之前和之后对性能进行性能测试,以确定更改的实际效果(包括内存负载等),并且一旦确定这些下拉列表是导致性能问题无法接受的原因,您应该真正做到这样的事情. .