Hibernate的性能优化问题笔记
性能优化
1.注意session.clear()的运用。尤其是不断分页循环的情况下。
a)在一个大集合中进行遍历,遍历取出数据或者对象
b)java会引起内存泄漏吗?在语法上是不可能出现内存泄露的,因为我们是运行在java虚拟机,有垃圾处理机制。但是在实际操作中,比如打开session不关闭,打开sessionfactory不关闭(数据库连接池),打开本地文件不关闭等等,这些都是占用内存的,所以可能操作不当会引起内存泄漏。
2.1+N问题(一对多,多对一)把关联对象也取出来了实际并不需要。导致冗余。
a)将fecthType设置为lazy(按需而发Query)
b)BatchSize(size=5) 一次性发5条语句 只是少发sql语句了
c)join fetch
3.list和iterate不同
a)list是直接把对象取出来。iterate是先取出主键id,有需要的时候,在根据id取对象。
b)list不会应用session缓存 第一次取出时放入缓存,当发送相同的查询语句时,会再次刷新缓存。再次发送sql(仍然会到数据库查询).而iterate是先去找session级缓存,如果有。不会再发sql语句了。所以我们可以取数据是用list,而查时用iterate.
4.一级缓存 二级缓存 查询缓存
一级缓存是指session缓存,在同一个session中共享。
二级缓存是sessionfactory缓存,可跨越session。(ehcache,oscache,(硬盘和内存)jbosscache,sawrmcache(红色可用于集群环境))
二级环境适用环境:1,经常被访问2.改动不大3.数据量小
<property name="cache.use_second_level_cache">true</property>
<property name="cache.provider_class">org.hibernate.cache.EhsCacheProvider</property>
加@cache注解。
如果适用查询缓存要配置
<property name="cache.use_second_level_cache">true</property>
<property name="cache.provider_class">org.hibernate.cache.EhsCacheProvider</property>
<property name="cache.use_query_cache">true</property>
代码要加 iscacheable(true).
5.缓存算法LRU(空闲时间长拿走) LFU(命中率低的拿走) FIFO(先进先出)
Hibernate的性能优化问题笔记的更多相关文章
- Spring/Hibernate 应用性能优化的7种方法
对于大多数典型的 Spring/Hibernate 企业应用而言,其性能表现几乎完全依赖于持久层的性能.此篇文章中将介绍如何确认应用是否受数据库约束,同时介绍七种常用的提高应用性能的速成法.本文系 O ...
- KVM性能优化学习笔记
本学习笔记系列都是采用CentOS6.x操作系统,KVM虚拟机的管理也是采用virsh方式,网上的很多的文章都基于ubuntu高版本内核下,KVM的一些新的特性支持更好,本文只是记录了CentOS6. ...
- 深挖计算机基础:Linux性能优化学习笔记
参考极客时间专栏<Linux性能优化实战>学习笔记 一.CPU性能:13讲 Linux性能优化实战学习笔记:第二讲 Linux性能优化实战学习笔记:第三讲 Linux性能优化实战学习笔记: ...
- Pandas 性能优化 学习笔记
摘要 本文介绍了使用 Pandas 进行数据挖掘时常用的加速技巧. 实验环境 import numpy as np import pandas as pd print(np.__version__) ...
- mysql性能优化学习笔记-参数介绍及优化建议
MySQL服务器参数介绍 mysql参数介绍(客户端中执行),尽量只修改session级别的参数. 全局参数(新连接的session才会生效,原有已经连接的session不生效) set global ...
- mysql性能优化学习笔记
mysql性能优化 硬件对数据库的影响 CPU资源和可用内存大小 服务器硬件对mysql性能的影响 我们的应用是CPU密集型? 我们的应用的并发量如何? 数量比频率更好 64位使用32位的服务器版本 ...
- js性能优化--学习笔记
<高性能网站建设进阶指南>: 1.使用局部变量,避免深入作用域查找,局部变量是读写速度最快的:把函数中使用次数超过一次的对象属性和数组存储为局部变量是一个好方法:比如for循环中的.len ...
- mysql性能优化学习笔记(1)优化目的、方向及数据库准备
前言: 最近参加面试,问到了很多关于mysql的优化方面的问题,回答的不是很好,也是因为原先做的项目流量不是很大,所以对mysql优化不是太了解,所以趁着周末,恶补一下. 本文来源于慕课网sqlerc ...
- Java程序性能优化读书笔记(一):Java性能调优概述
程序性能的主要表现点: 执行速度:程序的反映是否迅速,响应时间是否足够短 内存分配:内存分配是否合理,是否过多地消耗内存或者存在内存泄漏 启动时间:程序从运行到可以正常处理业务需要花费多少时间 负载承 ...
随机推荐
- WebView中实现文件下载功能
WebView控制调用相应的WEB页面进行展示.当碰到页面有下载链接的时候,点击上去是一点反应都没有的.原来是因为WebView默认没有开启文件下载的功能,如果要实现文件下载的功能,需要设置Web ...
- 初识WCF
以前,总是说自己的基础知识不牢靠,就是因为自己总是不总结.昨天,学费交了,顿时感觉不一样了,心里有劲也有力了,知道了以前的自己到底为什么会那样了,因为没有压力. --题记 我参加过浩哥的招标项目,参加 ...
- 《大话》之 策略模式 Vs 状态模式
一.简介: 策略模式: 背景:商店要打折销售,各种版本的销售方式,让小菜心烦意乱 内容: 定义算法家族,分别封装起来,让他们之间可以户型替换,此模式让算法的变化,不会影响到使用算法的用户. 图文 ...
- input上下居中问题
IE:不管该行有没有文字,光标高度与font-size一致.FF:该行有文字时,光标高度与font-size一致.该行无文字时,光标高度与input的height一致.Chrome:该行无文字时,光标 ...
- css新增选择器
- Netty 入门示例
服务端代码示例 import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.*; import io.netty.channe ...
- 把所有css放到一个css文件的格式
@charset "utf-8"; @import url("global.css"); @import url("common.css") ...
- String equals()方法使用以及子串加密
String equals()方法的实现方法: 名称 说明 String.Equals (Object) 确定此 String 实例是否与指定的对象(也必须是 String)具有相同的值. Strin ...
- UVa12264 Risk(最大流)
题目 Source https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_pr ...
- objective-c 通过类名实例化类
NSString *myClassName = @"MainScene"; Class myClass = NSSClassFromString(myClassName);