首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getSqlSession和openConnection之间发生了什么

getSqlSession和openConnection之间发生了什么
EN

Stack Overflow用户
提问于 2018-06-11 16:29:14
回答 1查看 871关注 0票数 2

我的springboot + mybatis服务非常慢,我分析了日志并发现:

代码语言:javascript
复制
[DEBUG 2018-06-11 15:30:06.295] [http-nio-9973-exec-1] logid:102789834531274752 org.mybatis.spring.SqlSessionUtils.getSqlSession(SqlSessionUtils.java:97) [Creating a new SqlSession]
[DEBUG 2018-06-11 15:30:06.296] [http-nio-9973-exec-1] logid:102789834531274752 org.mybatis.spring.SqlSessionUtils.registerSessionHolder(SqlSessionUtils.java:148) [SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@584909b4] was not registered for synchronization because synchronization is not active]
[DEBUG 2018-06-11 15:30:17.997] [http-nio-9973-exec-1] logid:102789834531274752 org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:87) [JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@1ebfd05a] will not be managed by Spring]
[DEBUG 2018-06-11 15:30:17.998] [http-nio-9973-exec-1] logid:102789834531274752 org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:181) [==>  Preparing: SELECT `id`,`name`,`sales_group_id`,`advertiser_id`,`agent_id`,`industry_id`,`contract_id`,`cast_system_id`,`traffic_category_id`,`distinct_type_id`,`dsp_id`,`dsp_name`,`push_ratio`,`executor_name`,`direct_sales_name`,`agent_sales_name`,`description`,`region_id`,`customer_type_id`,`creator_id`,`creator_name`,`create_time`,`update_time`,`audit_status_id`,`run_status_id`,`version`,`begin_date`,`end_date`,`cipdx`,`progress` FROM campaign_info WHERE id = ? ]
[DEBUG 2018-06-11 15:30:17.998] [http-nio-9973-exec-1] logid:102789834531274752 org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:181) [==> Parameters: 1(Integer)]
[DEBUG 2018-06-11 15:30:19.107] [http-nio-9973-exec-1] logid:102789834531274752 org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:181) [<==      Total: 0]
[DEBUG 2018-06-11 15:30:19.107] [http-nio-9973-exec-1] logid:102789834531274752 org.mybatis.spring.SqlSessionUtils.closeSqlSession(SqlSessionUtils.java:191) [Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@584909b4]]

org.mybatis.spring.SqlSessionUtils.getSqlSessionorg.mybatis.spring.transaction.SpringManagedTransaction.openConnection之间有大约10秒的差距,那么发生了什么呢?是我的mysql太慢了吗?或者我的spring服务出了什么问题?

EN

回答 1

Stack Overflow用户

发布于 2018-06-12 06:41:29

主要的疑点是打开到数据库的连接,因为当时正在发生这种情况。

您正在使用连接池,所以很可能池中的所有连接都很忙,而这个特定的客户端一直在等待,直到某些连接返回到池中。

要检查是否属于这种情况,您可以查看连接池文档,了解如何启用连接何时借用/返回到池的日志记录,或者为org.springframework.jdbc.datasource.DataSourceUtils记录器启用DEBUG日志记录。

另一个可能的原因是打开连接很慢。您可以使用一些使用jdbc直接连接到数据库的简单程序(如this)来检查这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50793391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档