Mybatis извините медленно - PullRequest
0 голосов
/ 19 марта 2020

Мой проект sql очень медленный, каждые sql стоят более 3 секунд. В моей базе данных очень мало данных.
Я пробовал несколько вариантов этого, но ни один из них, похоже, не работает. Любые идеи?

Конфигурация

  • springboot1.3.1
  • mybatis3.2.8
  • druid1.0.16.

Отладочная информация

debug

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>

1 Ответ

0 голосов
/ 23 марта 2020

Я обнаружил проблему, этот проект использует logback и отправляет журналы в ELK, но служба redis ELK не работает.

<?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"/> он работает нормально.

...