解决方案 »

  1.   

    exists  试试看看呢数据库方面再优化看看
      

  2.   

    这个应该是sql本身执行效率的问题,与mybatis 应该关系不大,把sql单独执行一下,看看查询计划到底哪一块耗时间
      

  3.   

    感谢两位的关注。因为这句sql我也觉得不会有什么问题。后来又测试发现问题所在。因为这条语句是在一个service方法中执行的。假设这个方法中需要执行三条sql语句。那么第一条sql语句总是花费时间很多。
    是这个原因,那怎么破呢??、
    这个应该是sql本身执行效率的问题,与mybatis 应该关系不大,把sql单独执行一下,看看查询计划到底哪一块耗时间
      

  4.   

    猜想的原因是第一次的时候需要创建sql连接比较耗时。
      

  5.   

    为方便。贴出我的配置。使用的是mybatis和spring。 <!-- ***************本地MySql配置数据源************** -->
    <bean id="mySqlDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
             <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property> 
             <property name="url"><value>jdbc:mysql://192.168.1.***:3306/blin360?useUnicode=true&amp;charaterEncoding=utf-8</value></property> 
             <property name="username"><value>root</value></property> 
             <property name="password"><value>root</value></property>
    </bean>

    <!-- ***************配置数据源************** -->
    <bean id="dataSource" class="com.blin360.DataSourceInstances.DataSources">  
            <property name="targetDataSources">  
               <map key-type="java.lang.String">  
                    <entry value-ref="mySqlDataSource" key="MYSQL"></entry>
                </map>  
           </property>  
            <property name="defaultTargetDataSource" ref="mySqlDataSource"></property>  
        </bean>
    <!-- MyBatis Sql -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
       <property name="configLocation" value="classpath:mybatis-config.xml"/>
    </bean>