Laravel如何精确监听并分析每一次SQL执行的性能,成为高效调试的得力助手?

2026-04-29 03:201阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计991个文字,预计阅读时间需要4分钟。

Laravel如何精确监听并分析每一次SQL执行的性能,成为高效调试的得力助手?

如果您的Laravel应用中遇到数据库查询缓慢或响应延迟问题,可能是由于低效的SQL查询未被发现及及时优化。以下是一些监控和提升SQL执行性能的方法:

一、启用 Query Log 并记录执行时间

Laravel 提供了内置的查询日志功能,可在开发环境中捕获所有执行的 SQL 语句及其执行耗时,适用于快速定位慢查询。

1、在 AppServiceProviderboot 方法中启用查询日志:

2、调用 DB::enableQueryLog() 启用日志记录。

3、在需要监控的逻辑后,使用 DB::getQueryLog() 获取全部查询记录。

4、遍历结果,提取 time 字段并筛选出超过阈值(如 100ms)的查询。

二、使用 DB::listen() 监听查询事件

该方法通过闭包回调实时捕获每条 SQL 的执行信息,包括原始 SQL、绑定参数、执行时间和连接名称,适合嵌入到中间件或请求生命周期中进行全局监控。

阅读全文
标签:Laravel

本文共计991个文字,预计阅读时间需要4分钟。

Laravel如何精确监听并分析每一次SQL执行的性能,成为高效调试的得力助手?

如果您的Laravel应用中遇到数据库查询缓慢或响应延迟问题,可能是由于低效的SQL查询未被发现及及时优化。以下是一些监控和提升SQL执行性能的方法:

一、启用 Query Log 并记录执行时间

Laravel 提供了内置的查询日志功能,可在开发环境中捕获所有执行的 SQL 语句及其执行耗时,适用于快速定位慢查询。

1、在 AppServiceProviderboot 方法中启用查询日志:

2、调用 DB::enableQueryLog() 启用日志记录。

3、在需要监控的逻辑后,使用 DB::getQueryLog() 获取全部查询记录。

4、遍历结果,提取 time 字段并筛选出超过阈值(如 100ms)的查询。

二、使用 DB::listen() 监听查询事件

该方法通过闭包回调实时捕获每条 SQL 的执行信息,包括原始 SQL、绑定参数、执行时间和连接名称,适合嵌入到中间件或请求生命周期中进行全局监控。

阅读全文
标签:Laravel