Tio*_*oma 12 java performance hibernate
我有疑问,也许是某个人认为是愚蠢的.Hibernate快吗?我在系统中使用它,它对数据库的查询数量非常大.并且性能变得警觉.关于当前背景的其他问题.什么会更好 - 许多简单的查询(使用单个表)或少几个JOIN查询?
提前Artem的坦克
小智 13
首先,你可以做很多事情来加速Hibernate.查看这些高性能休眠技巧文章,了解可以加快数据访问层速度的全面列表.
使用"很多"查询,您将遇到典型的N + 1查询问题.您使用Hibernate加载实体,该实体具有相关对象.使用LAZY加入,您将获得每条记录的单个查询.每个查询通过网络到达数据库服务器,并返回数据.这都需要时间(打开连接,网络延迟,查找,数据吞吐量等).
对于单个查询(具有联接),查找和数据吞吐量大于多个查询.但是,您只需打开一次连接和网络延迟.因此,对于100个或更多查询,您具有较小的查找和数据吞吐量,但您将拥有100次(包括打开连接和网络延迟).
一个需要20ms的查询.vs 100个需要1ms的查询.你做数学;)
如果它可以增长到1000的记录.单个查询会对性能产生很小的影响,但1000个查询与100个查询相比要高出10倍.因此,对于多个查询,您将大大降低性能.
使用HQL查询检索数据时,可以将FETCH添加到JOIN,以便使用相同的查询加载数据(使用JOIN).
有关此主题的更多信息,请查看此Hibernate性能调优教程.
| 归档时间: |
|
| 查看次数: |
32489 次 |
| 最近记录: |