以下是服务器部分异常
Caused by: java.lang.OutOfMemoryError: getNewTla
at org.apache.ibatis.type.UnknownTypeHandler.resolveTypeHandler(UnknownTypeHandler.java:51) ~[mybatis-3.0.6.jar:3.0.6]
at org.apache.ibatis.type.UnknownTypeHandler.getNullableResult(UnknownTypeHandler.java:26) ~[mybatis-3.0.6.jar:3.0.6]
at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:29) ~[mybatis-3.0.6.jar:3.0.6]
at org.apache.ibatis.executor.resultset.FastResultSetHandler.applyAutomaticMappings(FastResultSetHandler.java:280) ~[mybatis-3.0.6.jar:3.0.6]
at org.apache.ibatis.executor.resultset.FastResultSetHandler.getRowValue(FastResultSetHandler.java:222) ~[mybatis-3.0.6.jar:3.0.6]
at org.apache.ibatis.executor.resultset.FastResultSetHandler.handleRowValues(FastResultSetHandler.java:173) ~[mybatis-3.0.6.jar:3.0.6]
at org.apache.ibatis.executor.resultset.FastResultSetHandler.handleResultSet(FastResultSetHandler.java:146) ~[mybatis-3.0.6.jar:3.0.6]
at org.apache.ibatis.executor.resultset.FastResultSetHandler.handleResultSets(FastResultSetHandler.java:112) ~[mybatis-3.0.6.jar:3.0.6]
at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:40) ~[mybatis-3.0.6.jar:3.0.6]
at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:55) ~[mybatis-3.0.6.jar:3.0.6]
Caused by: java.lang.OutOfMemoryError: allocLargeObjectOrArray: [C, size 49736
at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:133) ~[na:1.6.0_45]
at java.lang.StringCoding.decode(StringCoding.java:173) ~[na:1.6.0_45]
at java.lang.String.<init>(String.java:443) ~[na:1.6.0_45]
at org.apache.commons.httpclient.util.EncodingUtil.getString(EncodingUtil.java:164) ~[commons-httpclient-3.1.jar:na]
at org.apache.commons.httpclient.util.EncodingUtil.getString(EncodingUtil.java:187) ~[commons-httpclient-3.1.jar:na]
at org.apache.commons.httpclient.HttpMethodBase.getResponseBodyAsString(HttpMethodBase.java:806) ~[commons-httpclient-3.1.jar:na]
at ru.paradoxs.bitcoin.http.HttpSession.sendAndReceive(HttpSession.java:71) ~[HttpSession.class:na]
导致内存用光的原因就是一个百万级的表没有做条件过滤导致的,直接对它们写的代码无语了,前期没有估算过这个表会有这么大的数据量
所以,写SQL的时候如果这个SQL调用频率很高,而且可能用来作为缓存读写,那么就最好要好好考虑下where条件限制,否则会使网站变卦的。
刚开始以为是memcached客户端的问题,还把很多缓存数据移植到redis存储,结果原来是这个导致内存不足,下次一定要小心了。