简介
P6Spy 是针对数据库访问操作的动态监测开源框架(www.p6spy.com)。利用该框架可以查看sql语句,不是预编译的带问号的,而是真正的数据库执行的sql,更直观,更简单。
集成方式
添加jar包依赖
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
<version>2.1.4</version>
</dependency>
修改配置
数据库连接:spring.datasource.url
数据库驱动:spring.datasource.driver-class-name
spring.datasource.url=jdbc:p6spy:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.p6spy.engine.spy.P6SpyDriver
添加p6spy配置文件
spy.properties文件需要修改以下地方
# 真正使用的数据库驱动
# p6spy会使用该驱动替换自身的P6SpyDriver
realdriver=com.mysql.jdbc.Driver
# 日志打印方式,官方自带的打印日志没有将sql格式化,可以自定义日志打印类
appender=com.p6spy.engine.spy.appender.StdoutLogger
# 日志打印方式为文件时日志文件路径
logfile = ../logs/spy.log
效果
1576656426693|1|statement|connection 0|SELECT count(0) FROM yd_group g WHERE 1 = 1 AND group_name = ?|SELECT count(0) FROM yd_group g WHERE 1 = 1 AND group_name = 'name-0'
1576656426706|1|statement|connection 0|select g.* from yd_group g where 1=1 and group_name=? LIMIT ? |select g.* from yd_group g where 1=1 and group_name='name-0' LIMIT 10
效率
查询速度影响极小低于1%,可以忽略
序号 | 直接查询 | p6spy |
---|---|---|
1 | 6201 | 6249 |
3 | 6227 | 6286 |
4 | 6277 | 6334 |
5 | 6192 | 6252 |
6 | 6281 | 6323 |
平均 | 6236 | 6289 |