一、实用druid自带web管理页面查看
Druid是一个开源的高性能数据库连接池,由阿里巴巴集团开发并开源,主要用于Java应用程序中与数据库的连接管理和资源池化。它提供了一系列功能和配置选项,旨在提供高效、可靠的数据库连接管理。
特性和功能:
高性能:Druid连接池通过一些优化策略实现高性能的数据库连接获取和释放。其中包括使用预创建连接来减少连接获取的开销,以及通过连接池扩展机制来快速处理并发请求。此外,Druid还提供了连接的闲置检测和定时回收机制,以避免连接长时间占用资源。
监控统计:Druid连接池内置了强大的监控统计功能,可以实时监控连接池的状态、活跃连接数、请求频率、SQL执行情况等。它提供了一个内置的Web界面,可以方便地查看连接池的监控数据,并进行性能分析和故障排查。
防止泄露:Druid连接池可以检测和关闭泄露的连接,防止长时间占用数据库连接资源。它提供了一套完善的连接泄露检测和回收机制,以保证连接资源的有效利用。
数据库访问优化:Druid连接池支持连接的预处理、批量更新等优化操作,可以提高数据库的访问效率。它还提供了SQL执行的慢查询日志功能,可以帮助开发人员找出慢查询语句,并进行性能优化。
安全防护:Druid连接池提供了一些安全防护机制,如SQL防火墙、黑白名单过滤等。这些机制可以保护数据库免受恶意SQL注入等。
配置灵活:Druid连接池的配置选项非常灵活,可以根据应用程序的需求进行定制。您可以设置连接池大小、最大连接数、连接超时时间、验证方式等参数,以满足不同场景的需求。
二、mysql记录慢查询
mysql配置文件
[mysqld]
slow_query_log=ON # 开启慢查询日志开关
slow_query_log_file=/xxx/data/slow.log # 慢查询日志的目录和文件名信息
long_query_time=3 # 设置慢查询的阈值为3秒,超出此设定值的SQL即被记录到慢查询日志
log_output=FILE
可以配置的参数有:
- slow_query_log:是否启用慢查询日志。
- slow_query_log_file:指定慢查询日志位置及名称,默认值为host_name-slow.log,可指定绝对路径。
- long_query_time:慢查询执行时间阈值,超过此时间会记录,默认为10,单位为s。
- log_output:慢查询日志输出目标,默认为file,即输出到文件。
- log_timestamps:主要是控制 error log、slow log、genera log 日志文件中的显示时区,默认使用UTC时区,建议改为 SYSTEM 系统时区。
- log_queries_not_using_indexes:是否记录所有未使用索引的查询语句,默认为off。
- min_examined_row_limit:对于查询扫描行数小于此参数的SQL,将不会记录到慢查询日志中,默认为0。
- log_slow_admin_statements:慢速管理语句是否写入慢日志中,管理语句包含 alter table、create index 等,默认为 off 即不写入。
分析日志
写入日志的每个语句都以 # 字符开头。对于每一组慢SQL,第一行记录的是该条 SQL 执行的时刻,第二行记录的是执行该语句的用户和 IP 以及链接 id ,第三行的几个字段解释如下:
- Query_time: duration 语句执行时间,以秒为单位。
- Lock_time: duration 获取锁的时间(以秒为单位)。
- Rows_sent: N 发送给 Client 端的行数。
- Rows_examined: N 服务器层检查的行数(不计算存储引擎内部的任何处理)。
最下面的两行分别是此语句执行时候的时间戳和具体的慢 SQL 。
在命令行开启(有root权限)
# 查看慢查询是否开启
SHOW VARIABLES LIKE '%slow_query_log%'
# 开启慢查询
SET GLOBAL slow_query_log='ON'
# 查看慢查询日志位置
SHOW VARIABLES LIKE '%slow_query_log_file%'
# 查看慢查询阈值,单位:秒
SHOW GLOBAL VARIABLES LIKE '%long_query_time%'
# 修改慢查询阈值,单位:秒
SET long_query_time=1
# 查看慢查询语句的数量
SHOW GLOBAL STATUS LIKE '%Slow_queries'
# 测试执行一个慢查询语句
SELECT SLEEP(3);
参考
Spring Boot3.0(二):整合数据库连接池Druid - 知乎 (zhihu.com)
https://www.cnblogs.com/FengZeng666/p/17463676.html