当前位置: 首页 > news >正文

SpringBoot开发——整合P6Spy详细记录SQL执行耗时情况

文章目录

  • 1、p6spy是什么
  • 2、SpringBoot整合P6Spy
    • 2.1 引入依赖
    • 2.2 数据库操作
    • 2.3 测试代码
    • 2.4 p6spy配置
    • 2.5 其它自定义

监控并优化数据库操作的性能至关重要。为了提升应用性能和数据库效率,很多项目会实现一个功能来打印SQL执行耗时。这一功能通过在SQL查询执行前后记录时间戳,并计算两者之间的差值,从而精确地测量出每个SQL语句的执行时间。

打印SQL执行耗时不仅能够帮助开发者快速定位性能瓶颈,还能为数据库调优提供数据支持。比如调整查询逻辑、优化索引、或者重构数据库架构。

此外,该功能也有助于在开发阶段就及时发现并修正潜在的性能问题,避免在生产环境中出现性能下降的情况。

本篇文章将给大家介绍一个开源的组件p6spy,该工具提供了执行SQL的耗时及当前sql语句及参数情况。

1、p6spy是什么

P6Spy 是一个可无缝拦截和记录数据库数据的框架,无需更改现有应用程序的代码。P6Spy 发行版包括 P6Log,这是一个可记录任何Java应用程序的所有JDBC事务的应用程序。

2、SpringBoot整合P6Spy

2.1 引入依赖

<dependency><groupId>com.github.gavlyukovskiy</groupId><artifactId>p6spy-spring-boot-starter</artifactId><version>1.9.1</version>
</dependency>

默认情况,引入上面依赖你无需做任何的配置,接下来业务中任何SQL语句都将被记录下来。

2.2 数据库操作

MyBatis

@Mapper
public interface BigTableMapper {@Select("select * from big_table limit #{offset}, 10")List<BigTable> query(Integer offset) ;}

JPA

public interface BigTableRepository extends JpaRepository<BigTable, Integer> {@Query(value = "select * from big_

相关文章:

  • 智能识别猫猫
  • Day 1 词汇备战
  • 使用MyBatis-Plus与Thymeleaf在Spring Boot中实现增删改查
  • 【CSS】鼠标 、轮廓线 、 滤镜 、 堆叠层级
  • 学习一下怎么用git
  • 阿里云AlibabaCloudLinux php 安装 mysqli 扩展
  • 位运算--(二进制中1的个数)
  • ESP32-定时器中断
  • uniapp vue3 使用echarts绘制图表 柱状图等
  • 缓存穿透 问题(缓存空对象)
  • Java | Leetcode Java题解之第436题寻找右区间
  • Python 如何使用 unittest 模块编写单元测试
  • Vue75 编程式路由导航
  • Azure Data Box 80 TB 现已在中国区正式发布
  • Vue使用axios二次封装、解决跨域问题
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • Lsb图片隐写
  • PHP变量
  • sessionStorage和localStorage
  • v-if和v-for连用出现的问题
  • 规范化安全开发 KOA 手脚架
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 深度学习中的信息论知识详解
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 以太坊客户端Geth命令参数详解
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • (1)Hilt的基本概念和使用
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (二)JAVA使用POI操作excel
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (游戏设计草稿) 《外卖员模拟器》 (3D 科幻 角色扮演 开放世界 AI VR)
  • (转)scrum常见工具列表
  • (转)winform之ListView
  • (轉)JSON.stringify 语法实例讲解
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .Net Core中Quartz的使用方法
  • .Net Remoting常用部署结构
  • .net通过类组装数据转换为json并且传递给对方接口
  • .net专家(张羿专栏)
  • .sh
  • [].slice.call()将类数组转化为真正的数组
  • [1181]linux两台服务器之间传输文件和文件夹
  • [20170705]lsnrctl status LISTENER_SCAN1
  • [240727] Qt Creator 14 发布 | AMD 推迟 Ryzen 9000芯片发布
  • [C/C++] -- 二叉树
  • [Deepin 15] 编译安装 MySQL-5.6.35
  • [Django 0-1] Core.Email 模块