Mybats 抖动慢

Mybatis excute slow

我的项目执行 sql 非常慢,每个 sql 成本超过 3 second.There 在我的数据库中数据很少。
我尝试了多种变体,但其中 none 似乎有效。有任何想法吗?

配置

调试信息

application.properties

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"
       default-lazy-init="false">


    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init"
          destroy-method="close">

        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>


        <property name="initialSize" value="20"/>
        <property name="minIdle" value="100"/>
        <property name="maxActive" value="100"/>


        <property name="maxWait" value="60000"/>

        <property name="timeBetweenEvictionRunsMillis" value="60000"/>

        <property name="minEvictableIdleTimeMillis" value="300000"/>

        <property name="validationQuery" value="select 1"/>
        <property name="testWhileIdle" value="true"/>
        <property name="testOnBorrow" value="false"/>
        <property name="testOnReturn" value="false"/>


        <property name="poolPreparedStatements" value="false"/>
        <property name="maxPoolPreparedStatementPerConnectionSize"
                  value="20"/>


        <property name="filters" value="wall,stat"/>

    </bean>

    <bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">
        <property name="slowSqlMillis" value="3000"/>
        <property name="logSlowSql" value="true"/>
    </bean>

    <bean id="jdbc"
          class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
        <constructor-arg ref="dataSource"/>
    </bean>

    <bean id="jdbcCall" scope="prototype"
          class="org.springframework.jdbc.core.simple.SimpleJdbcCall">
        <constructor-arg ref="dataSource"/>
    </bean>
</beans>

找到问题了,这个项目使用了logback,把日志发给ELK,但是ELK的redis服务挂了。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property name="AppName" value="Docx"/>

    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${AppName} %d %-5p [%thread] %c:%L - %m%n</pattern>
        </encoder>
    </appender>

    <appender name="logstash" class="com.cwbase.logback.RedisAppender">
        <source>*</source>
        <type>*</type>
        <host>*</host>
        <key>*</key>  
        <tags>*</tags>
        <port>*</port>
        <mdc>true</mdc>
        <location>true</location>
        <callerStackIndex>0</callerStackIndex>
        <level>INFO</level>
    </appender>

    <appender name="errorFile"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>logs/error/error</File>
        <encoder>
            <pattern>%d [%thread] %c:%L-%m%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logs/error/error_%d{yyyy-MM-dd}</fileNamePattern>
        </rollingPolicy>

        <!-- <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>DEBUG</level>

            <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> -->
    </appender>

    <appender name="sqlFile"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>logs/sql/slow</File>
        <encoder>
            <pattern>%d [%thread] %c:%L-%m%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logs/sql/slow_%d{yyyy-MM-dd}</fileNamePattern>
        </rollingPolicy>
    </appender>
    <logger name="com.alibaba.druid.filter.stat.StatFilter" additivity="false" level="DEBUG">
        <appender-ref ref="sqlFile"/>
    </logger>



    <logger name="org" level="ERROR"/>

    <root level="DEBUG">
        <appender-ref ref="stdout"/>
<!--        <appender-ref ref="logstash"/>-->
    </root>


</configuration>

注释后<appender-ref ref="logstash"/>,正常工作