【Java】使用Druid连接池的监控面板排查慢SQL
默认在后台服务的地址:
http://localhost:8078/druid/login.html
账号信息放在配置文件中获取:
server:
port: 8078 spring:
datasource:
druid:
stat-view-servlet:
loginUsername: admin # 访问druid监控界面的用户名密码
loginPassword: 123456
max-pool-prepared-statement-per-connection-size: 20
filters: stat,wall
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
starter依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
登陆后,主要看这两个功能:

【SQL监控】和【URI监控】
URI监控可以查看接口响应的情况:
可以对每个字段进行排序操作,要查看响应最慢的接口,倒序【请求最慢】的字段即可

其次是查看【SQL监控】
在这里查看慢SQL:

点击后可以查看SQL,但是没有参数,只有占位符

分析慢SQL的做法是看SQL执行计划:
MySQL使用Explain关键字:
mysql> EXPLAIN
SELECT *
FROM `ymcd_aisw`.`aisw_merchant`
WHERE merchant_no = 'AISW-36072521169083';
+----+-------------+---------------+------+-----------------+-----------------+---------+-------+------+-----------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------------+------+-----------------+-----------------+---------+-------+------+-----------------------+
| 1 | SIMPLE | aisw_merchant | ref | IDX_MERCHANT_NO | IDX_MERCHANT_NO | 63 | const | 1 | Using index condition |
+----+-------------+---------------+------+-----------------+-----------------+---------+-------+------+-----------------------+
1 row in set (0.04 sec)
Oracle使用PL\SQL工具创建SQL执行计划:
Plan Hash Value : 3262553821 ------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost | Time |
------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | | 68 | 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | | | |
| 2 | TABLE ACCESS FULL | TE_NONLIVING | 15024 | | 68 | 00:00:01 |
------------------------------------------------------------------------------

PostgreSQL使用关键字Explan Analyze:
postgres=# explain analyze
SELECT name FROM test WHERE id = 10000; QUERY PLAN
-----------------------------------------------------------------------------------------------------------------------
Gather (cost=1000.00..107139.34 rows=1 width=11) (actual time=1.020..708.268 rows=1 loops=1)
Workers Planned: 2
Workers Launched: 2
-> Parallel Seq Scan on test (cost=0.00..106139.24 rows=1 width=11) (actual time=449.350..683.611 rows=0 loops=3)
Filter: (id = 10000)
Rows Removed by Filter: 3333333
Planning Time: 0.169 ms
Execution Time: 708.320 ms
(8 rows)
【Java】使用Druid连接池的监控面板排查慢SQL的更多相关文章
- Druid连接池及监控在spring中的配置
Druid连接池及监控在spring配置如下: <bean id="dataSource" class="com.alibaba.druid.pool.DruidD ...
- spring配置druid连接池和监控数据库访问性能
Druid连接池及监控在spring配置如下: <bean id="dataSource" class="com.alibaba.druid.pool.DruidD ...
- Spring学习总结(12)——Druid连接池及监控在spring配置
Druid连接池及监控在spring配置如下: <bean id="dataSource" class="com.alibaba.druid.pool.DruidD ...
- springboot+druid连接池及监控配置
1. 问题描述 阿里巴巴的数据库连接池Druid在效率与稳定性都很高,被很多开发团队使用,并且自带的Druid监控也很好用,本章简单介绍下springboot+druid配置连接池及监控. 2. 解决 ...
- Spring系列之集成Druid连接池及监控配置
前言 前一篇文章我们熟悉了HikariCP连接池,也了解到它的性能很高,今天我们讲一下另一款比较受欢迎的连接池:Druid,这是阿里开源的一款数据库连接池,它官网上声称:为监控而生!他可以实现页面监控 ...
- Druid连接池基本配置及监控配置
1.配置Druid连接池,监控慢sql <!-- 数据源配置, 使用 Druid 数据库连接池 --> <bean name="dataSource" class ...
- SpringBoot2.0 基础案例(07):集成Druid连接池,配置监控界面
一.Druid连接池 1.druid简介 Druid连接池是阿里巴巴开源的数据库连接池项目.Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能.功能强大,能防SQL注入,内置Login ...
- 六:SpringBoot-集成Druid连接池,配置监控界面
SpringBoot-集成Druid连接池,配置监控界面 1.Druid连接池 1.1 Druid特点 2.SpringBoot整合Druid 2.1 引入核心依赖 2.2 数据源配置文件 2.3 核 ...
- spring 5.x 系列第6篇 —— 整合 mybatis + druid 连接池 (代码配置方式)
源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 项目目录结构 1.创建maven工程,除了Spring基本依赖外,还需要导 ...
- spring 5.x 系列第5篇 —— 整合 mybatis + druid 连接池 (xml配置方式)
源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 项目目录结构 1.创建maven工程,除了Spring基本依赖外,还需要导 ...
随机推荐
- Docker部署深度学习模型
Docker部署深度学习模型 基础概念 Docker Docker是一个打包.分发和运行应用程序的平台,允许将你的应用程序和应用程序所依赖的整个环境打包在一起.比如我有一个目标检测的项目,我想分享给朋 ...
- 第一个java的应用程序
编写java第一个程序 class HelloWorld { public static void main(String[] args){ System.out.print("Hello ...
- C# .NET6 .NET CORE EXCEL 导入和导出
使用NPOI导入.xlsx遇到"EOF in header"报错,网上找好很多方法,没解决,最后换成EPPlus.Core导入. 导出默认是.xls. NPOI 操作类: usin ...
- Wireshark基础教程
Wireshark是非常流行的网络封包分析软件,可以截取各种网络数据包,并显示数据包详细信息.常用于开发测试过程各种问题定位.本文主要内容包括: 1.Wireshark软件下载和安装以及Wiresha ...
- SpringMVC 工作原理?
a.客户端发送请求到 DispatcherServlet b.DispatcherServlet 查询 handlerMapping 找到处理请求的 Controller c.Controller 调 ...
- java读取txt文件行的两种方式对比
import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import ja ...
- SQL索引优化,菜单列表优化
SQL索引优化,菜单列表优化 现象:在系统中几个数据量大的列表页面,首次进入页面未增加筛选条件,导致进入的列表查询速度非常慢.分析:通过SQL查看,是做了count求和查询,然后根据总的记录数来做分页 ...
- Unity网络通信系统设计
Unity网络通信系统设计 Buffer报文 BufferEntity类作为报文基类的作用包括: 封装数据:BufferEntity类可以用来封装网络通信中的数据,方便在网络传输中进行处理和管理. 提 ...
- mysql子查询不支持limit问题解决
如果sql语句中的子查询包含limit 例如: select * from table where id in (select id from table limit 3) 会报错: This ver ...
- opengrok源代码在线阅读平台搭建及字体修改
服务搭建 我所编写的docker-compose.yml如下,成功运行后将源码目录移动至 /data/opengrok/src ,重启容器使得opengrok快速更新索引 services: open ...