Laravel如何精确监听并分析每一次SQL执行的性能,成为高效调试的得力助手?
- 内容介绍
- 文章标签
- 相关推荐
本文共计991个文字,预计阅读时间需要4分钟。
如果您的Laravel应用中遇到数据库查询缓慢或响应延迟问题,可能是由于低效的SQL查询未被发现及及时优化。以下是一些监控和提升SQL执行性能的方法:
一、启用 Query Log 并记录执行时间
Laravel 提供了内置的查询日志功能,可在开发环境中捕获所有执行的 SQL 语句及其执行耗时,适用于快速定位慢查询。
1、在 AppServiceProvider 的 boot 方法中启用查询日志:
2、调用 DB::enableQueryLog() 启用日志记录。
3、在需要监控的逻辑后,使用 DB::getQueryLog() 获取全部查询记录。
4、遍历结果,提取 time 字段并筛选出超过阈值(如 100ms)的查询。
二、使用 DB::listen() 监听查询事件
该方法通过闭包回调实时捕获每条 SQL 的执行信息,包括原始 SQL、绑定参数、执行时间和连接名称,适合嵌入到中间件或请求生命周期中进行全局监控。
本文共计991个文字,预计阅读时间需要4分钟。
如果您的Laravel应用中遇到数据库查询缓慢或响应延迟问题,可能是由于低效的SQL查询未被发现及及时优化。以下是一些监控和提升SQL执行性能的方法:
一、启用 Query Log 并记录执行时间
Laravel 提供了内置的查询日志功能,可在开发环境中捕获所有执行的 SQL 语句及其执行耗时,适用于快速定位慢查询。
1、在 AppServiceProvider 的 boot 方法中启用查询日志:
2、调用 DB::enableQueryLog() 启用日志记录。
3、在需要监控的逻辑后,使用 DB::getQueryLog() 获取全部查询记录。
4、遍历结果,提取 time 字段并筛选出超过阈值(如 100ms)的查询。
二、使用 DB::listen() 监听查询事件
该方法通过闭包回调实时捕获每条 SQL 的执行信息,包括原始 SQL、绑定参数、执行时间和连接名称,适合嵌入到中间件或请求生命周期中进行全局监控。

