新手提问:
假设一个公司里面,人员不多,也就10-20个人。我现在用JavaWeb做后端,用Durid做数据源。我可以不可以在Dao层做所有人员实体类的缓存?类似与: 创建一个集合(先置为null),一旦某个人访问了这个请求,就用Select * from xxx; 获取所有实体类并初始化存储到这个集合。下次别人访问就快一点。 这种方式合理吗?
我知道表数据一多,这种方式肯定不可行。但我考虑的是表数据量不多的情况下。。
新手提问:
假设一个公司里面,人员不多,也就10-20个人。我现在用JavaWeb做后端,用Durid做数据源。我可以不可以在Dao层做所有人员实体类的缓存?类似与: 创建一个集合(先置为null),一旦某个人访问了这个请求,就用Select * from xxx; 获取所有实体类并初始化存储到这个集合。下次别人访问就快一点。 这种方式合理吗?
我知道表数据一多,这种方式肯定不可行。但我考虑的是表数据量不多的情况下。。
首先,你的想法有一定的可行性,特别是在数据量较小、人员数量不多的情况下。你的设想是通过在Dao层实施缓存来提高查询效率。具体来说,就是当第一次有人访问时,从数据库中获取所有的实体类并存储到一个集合中,之后的请求就可以直接从集合中获取,而不需要再次查询数据库。
然而,这种方式的可行性和优点在很大程度上取决于你的应用的具体需求和数据特性。下面我会详细列出一些你可能需要考虑的方面:
综上所述,虽然在小规模应用中实现Dao层实体类缓存可能有一定的性能提升,但你需要仔细考虑上述因素,以确保你的缓存策略是合理和有效的。
另外,我还想提一下,对于JavaWeb应用,有很多成熟的缓存解决方案可供选择,如Ehcache、Redis等。这些工具提供了强大的缓存功能和优化机制,可以很好地处理上述提到的各种问题。如果可能的话,我建议你考虑使用这些工具来实现你的缓存策略。
如果只有10-20人,怎么做都可以,但是缓存带来的数据不一致,更新不及时问题,处理起来更麻烦,不建议加缓存,因为这么小的表,查询性能也很快。
兄弟,你有点优化过度了,可以根据实际情况确认优化方向,比如先测试一下,查询员工信息是不是影响性能的点,然后才确定要不要加缓存。
8 回答2.7k 阅读
2 回答5.1k 阅读✓ 已解决
5 回答1.3k 阅读
4 回答1.4k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
3 回答2.2k 阅读
1 回答2.6k 阅读✓ 已解决
除非出现明显的性能问题,否则性能不需要优先考虑
业务规模不大,对性能要求不高的情况下,缓存带来的潜在问题远比带来的性能提升要大