hibernate如何在读写方面起作用:
如果应用程序对DB执行更多写操作,hibernate如何工作? 在这种情况下,我知道每次写入都必须刷新缓存,除了这是任何性能开销(与JDBC相比)
如果应用程序只读取数据(非常少写/更新),hibernate如何工作? 在这种情况下,由于不需要刷新缓存,我们可以期望hibernate的性能与JDBC一样好(或更好)(如果正确调整)。
另外,想要了解case2中使用的最佳选项(除了ORM)。
答案 0 :(得分:1)
添加额外的图层总是性能较差。但是,这个额外的层有时也会缩短开发时间。所以这一切都取决于您的用例和性能要求。如果您使用ORM,那么您可以为读取和查询启用二级缓存,这就是您的应用程序级性能。但有时本机数据库缓存已足够(这样集群中的每个节点都可以避免缓存)。
答案 1 :(得分:1)
Hibernate是一种可以使开发更容易的工具。我觉得(根据我自己的经验)Hibernate的开销并不是很大。您最终可能会将自己的sql结果写入对象映射。如果你很好的话,它可能比Hibernate快得多。但是:
总而言之,是的,Hibernate有它的开销,但对我来说,调优能力是非常重要的,并且在复杂的应用程序中使用Hibernate比使用普通JDBC有更好的性能(而且非常可能)。我不需要说开发Hibernate和QueryDSL比使用普通JDBC更快。