Asp.net 查询数据库或缓存小结果集的性能更好?
假设我需要填充4或5个下拉列表,其中包含数据库中的项目。每个下拉列表将包含<15个项目。这些项目几乎从未改变 现在,我可以在每次访问页面时查询数据库,也可以从自定义类中获取值,该类将检查这些值是否已经存在于ASP.Net的缓存中,并且仅当它们不查询数据库以更新缓存时 这对我来说是微不足道的,但我不确定表演是否会更好。我认为会是(虽然不太可能是什么大问题)Asp.net 查询数据库或缓存小结果集的性能更好?,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,假设我需要填充4或5个下拉列表,其中包含数据库中的项目。每个下拉列表将包含
你认为呢?这就是类存在的目的。这就是类存在的目的。IO通常比内存操作更昂贵(数量级)。特别是如果您的数据库位于另一台计算机中,那么您甚至会使用网络资源,而且只使用缓存肯定会更快
但实际上,当您通过测量确定它是一个性能瓶颈时,最终需要进行优化。IO通常比内存操作(按数量级)更昂贵。特别是如果您的数据库位于另一台计算机中,那么您甚至会使用网络资源,而且只使用缓存肯定会更快
但事实上,当您通过测量将其确定为性能瓶颈时,最终应进行优化。在处理性能问题时,您应始终:
您应该在更改前后对更改进行性能测试,以确定更改的实际影响(包括内存负载等),只有当您确定这些下拉列表是不可接受的性能问题的原因时,您才应该真正执行类似操作。在处理性能问题时,您应该始终:
您应该在更改前后对更改进行性能测试,以确定更改的实际影响(包括内存负载等),只有当您确定这些下拉列表是导致不可接受的性能问题的原因时,才应该真正执行类似操作。快速回答您的问题:
同样,与获取主数据的直接往返相比,性能更多地取决于应用程序的负载。简单地说,正如Thomas建议的那样,使用cache类 快速回答您的问题:
同样,与获取主数据的直接往返相比,性能更多地取决于应用程序的负载。简单地说,正如Thomas建议的那样,使用cache类 同意。仅当数据库太慢且无法进一步加速时才进行缓存。同意。仅当数据库太慢且无法进一步加速时才缓存。