Kar*_*och 3 optimization performance orm jpa java-ee
我正在教Java EE,尤其是JPA,Spring和Spring MVC.由于我在大型项目方面没有太多经验,因此很难知道如何向学生介绍ORM的优化.
目前,我提出了一些经典的优化技巧:
社区是否还有其他方面可以了解优化ORM的其他方法?我对DAO模式特别感兴趣......
从开发人员的角度来看,他必须处理以下优化案例:
所以我可以进行更多的优化:
所有这些情况都符合"先写,后优化"规则(或"先表达意图,后来优化").
另一个众所周知的与优化相关的API是预取API(" 预取路径 ").背后的想法是获取预期以最少的查询次数进行处理的对象图(或者更好,在最短的时间内).所以这个API解决了"SELECT N + 1"问题.同样,这部分通常预计会在任何严肃的ORM产品中实施.
从事务隔离的角度来看,所有上述优化都是安全的 - 即它们不会破坏它.从这一点来看,与缓存相关的优化通常是不安全的:您必须仔细配置缓存,以确保在获取实际内容很重要时(例如,在安全检查或某些实时交互时),您将不会获得过时的对象.这里有很多技术,从使用内置缓存开始完成与分布式缓存(memcached等)的集成.任何解决问题的方法都很好; 我个人希望一个开放的API允许将任何我喜欢的缓存集成.
PS我是.NET粉丝,以及DataObjects.Net和ORMeter.NET开发人员之一.所以我不知道在Java中如何实现完全相似的功能,但我熟悉可用解决方案的范围.