一次数据表十万的加载经历

    xiaoxiao2021-03-25  59

    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" />   
    转载请注明原文地址: https://ju.6miu.com/read-32202.html

    最新回复(0)