一次数据表十万的加载经历
来源:互联网 发布:红楼梦 明亡历史 知乎 编辑:程序博客网 时间:2024/06/11 07:35
1、减少日志的输出
设置为off
2、调整jvm的大小 百度widows 配置tomcat
-Xms3048M -Xmx3048M -Xmn700M -Xss512K -XX:PermSize=300M -XX:MaxPermSize=300M -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=5 -XX:GCTimeRatio=19 -Xnoclassgc -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:SoftRefLRUPolicyMSPerMB=0
3、压缩去掉
4、msql优化 因为默认是所有加载到java对象
<!-- 首先,setFetchSize()方法与分页无关。该方法只是优化查询内存用的。当设置了setFetchSize()方法后,query得到的ResultSet并不是全部放入内存中,而是将设定的大小的块存入内存,
调用next方法后,cursor移到下一个块的首地址,继续将一个块调入内存。优化了存储,减少了一次性占用内存太大的问题。 该方法不会影响sql语句的最终结果。
默认为从服务器一次取出所有数据放在客户端内存中,fetch size参数不起作用,当一条SQL返回数据量较大时可能会出现JVM OOM。 要一条SQL从服务器读取大量数据,不发生JVM
OOM,可以采用以下方法之一: 1、当statement设置以下属性时,采用的是流数据接收方式,每次只从服务器接收部份数据,直到所有数据处理完毕,不会发生JVM
OOM。 setResultSetType(ResultSet.TYPE_FORWARD_ONLY); setFetchSize(Integer.MIN_VALUE);
2、调用statement的enableStreamingResults方法,实际上enableStreamingResults方法内部封装的就是第1种方式。
3、设置连接属性useCursorFetch=true (5.0版驱动开始支持),statement以TYPE_FORWARD_ONLY打开,再设置fetch
size参数,表示采用服务器端游标,每次从服务器取fetch_size条数据。 -->
<property name="url"
value="jdbc:mysql://localhost:3306/teacher?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=true&useCursorFetch=true&defaultFetchSize=100" />
5、增加查询缓存
QuestionsMapper.xml 替换掉src-com.bei_en.teacher.admin.persistence.mapper.questions下的QuestionsMapper.xml
6、tomcat优化
修改server.xml
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />
</Service>
<Connector executor="tomcatThreadPool"
port="8080" protocol="org.apache.coyote.http11.Http11Protocol"
connectionTimeout="600000" keepAliveTimeout="150000"
redirectPort="8443" URIEncoding="UTF-8"
useBodyEncodingForURI="true" maxPostSize="0"
minSpareThreads="100" maxSpareThreads="300" acceptCount="10000" />
设置为off
2、调整jvm的大小 百度widows 配置tomcat
-Xms3048M -Xmx3048M -Xmn700M -Xss512K -XX:PermSize=300M -XX:MaxPermSize=300M -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=5 -XX:GCTimeRatio=19 -Xnoclassgc -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:SoftRefLRUPolicyMSPerMB=0
3、压缩去掉
4、msql优化 因为默认是所有加载到java对象
<!-- 首先,setFetchSize()方法与分页无关。该方法只是优化查询内存用的。当设置了setFetchSize()方法后,query得到的ResultSet并不是全部放入内存中,而是将设定的大小的块存入内存,
调用next方法后,cursor移到下一个块的首地址,继续将一个块调入内存。优化了存储,减少了一次性占用内存太大的问题。 该方法不会影响sql语句的最终结果。
默认为从服务器一次取出所有数据放在客户端内存中,fetch size参数不起作用,当一条SQL返回数据量较大时可能会出现JVM OOM。 要一条SQL从服务器读取大量数据,不发生JVM
OOM,可以采用以下方法之一: 1、当statement设置以下属性时,采用的是流数据接收方式,每次只从服务器接收部份数据,直到所有数据处理完毕,不会发生JVM
OOM。 setResultSetType(ResultSet.TYPE_FORWARD_ONLY); setFetchSize(Integer.MIN_VALUE);
2、调用statement的enableStreamingResults方法,实际上enableStreamingResults方法内部封装的就是第1种方式。
3、设置连接属性useCursorFetch=true (5.0版驱动开始支持),statement以TYPE_FORWARD_ONLY打开,再设置fetch
size参数,表示采用服务器端游标,每次从服务器取fetch_size条数据。 -->
<property name="url"
value="jdbc:mysql://localhost:3306/teacher?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=true&useCursorFetch=true&defaultFetchSize=100" />
5、增加查询缓存
QuestionsMapper.xml 替换掉src-com.bei_en.teacher.admin.persistence.mapper.questions下的QuestionsMapper.xml
6、tomcat优化
修改server.xml
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />
</Service>
<Connector executor="tomcatThreadPool"
port="8080" protocol="org.apache.coyote.http11.Http11Protocol"
connectionTimeout="600000" keepAliveTimeout="150000"
redirectPort="8443" URIEncoding="UTF-8"
useBodyEncodingForURI="true" maxPostSize="0"
minSpareThreads="100" maxSpareThreads="300" acceptCount="10000" />
0 0
- 一次数据表十万的加载经历
- 经历的一次诈骗
- 一次全站挂马的经历
- 一次失败的经历
- 一次演讲的经历
- 一次惨痛的经历
- 一次上厕所的搞笑经历
- 一次重组程序的经历
- yy的一次面试经历
- 一次手工杀毒的经历
- 一次配置电脑的经历
- 我的一次面试经历
- 托盘图标的一次经历
- 最近的一次开发经历
- 一次失败的淘宝经历
- 一次不爽的重装经历
- 一次失败的兼职经历
- 我的一次品酒经历
- 一起Talk Android吧(第十三回:Java面向对象综合练习)
- 大会直击|微软亚洲研究院刘铁岩:深度学习成功的秘密
- 【项目从0到1】前端jQuery 和 Java MD5加密
- 车速问题
- 【4-1】高级特性——切片和迭代
- 一次数据表十万的加载经历
- 求素数2
- /etc/profile文件简单介绍
- 自顶而下伸展树 数据结构说解
- SQL query Question and Answers
- c#数据结构学习总结
- 忘记题目了
- L1-013. 计算阶乘和
- 常用的汇编指令