0

0

laravel怎么对数据库查询进行性能分析_laravel数据库查询性能分析方法

裘德小鎮的故事

裘德小鎮的故事

发布时间:2025-10-26 16:18:02

|

754人浏览过

|

来源于php中文网

原创

首先启用查询日志并记录执行时间,使用DB::enableQueryLog()捕获SQL语句及耗时,筛选time>100ms的慢查询;接着通过Laravel Debugbar可视化分析数据库调用次数与重复查询;再利用Telescope监控所有数据库活动,查看执行时间与调用位置;同时在AppServiceProvider中使用DB::listen拦截超时查询并写入日志;最后对慢查询执行EXPLAIN分析执行计划,检查索引使用情况,避免全表扫描与文件排序,优化SQL性能。

laravel怎么对数据库查询进行性能分析_laravel数据库查询性能分析方法

如果您在使用 Laravel 开发应用时发现数据库查询响应缓慢,可能是由于未优化的 SQL 查询或频繁的数据库调用导致。为了定位性能瓶颈,需要对数据库查询进行详细分析。以下是几种有效的性能分析方法。

本文运行环境:MacBook Pro,macOS Sonoma

一、启用查询日志并记录执行时间

通过开启 Laravel 的查询日志功能,可以捕获所有执行的 SQL 语句及其执行时间,便于后续分析慢查询。

1、在代码中启用查询日志:DB::enableQueryLog()

2、执行您要测试的业务逻辑,例如调用某个控制器方法或服务。

3、获取查询日志数据:DB::getQueryLog(),返回包含 SQL、绑定参数和执行时间的数组。

4、遍历日志,筛选出执行时间较长的查询,重点关注 time 值大于 100ms 的条目。

二、使用 Laravel Debugbar 进行可视化分析

Laravel Debugbar 是一个开发调试工具,能够在页面底部显示详细的请求信息,包括数据库查询次数、SQL 内容和执行时间。

1、通过 Composer 安装 Debugbar:composer require barryvdh/laravel-debugbar --dev

2、发布配置文件php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"

3、访问目标页面,查看底部 Debugbar 面板中的 Database 选项卡。

4、检查查询数量是否过多,是否存在重复查询,并点击单条 SQL 查看其执行堆

三、利用 Laravel Telescope 监控数据库活动

Laravel Telescope 提供了强大的本地开发监控能力,能够记录数据库查询、请求、异常等信息。

1、安装 Telescope:composer require laravel/telescope

塑料卡板销售统计管理系统
塑料卡板销售统计管理系统

塑料卡板销售统计管理系统是一款对商品销售情况进行统一管理的系统。 程序特点1,简单,方便,网络操作,不受单台电脑文件保存限制2,纸质与数据库客户数据保存,查询变得更为方便3,免去久远的历史单据与数据查询烦恼4,方便的数据统计与自动核算功能5,丰富的销售数据录入与管理6, 销售清单(送货单)打印功能,支持条型码.7, 销售业绩提成统计功能8, 收款与未收款分开统计功能 后台地址:admin/logi

下载

2、发布资源:php artisan telescope:install 并运行迁移命令。

3、启动服务后访问 /telescope 路径进入仪表盘。

4、切换到 Queries 标签页,查看所有数据库操作的详细信息,包括运行时间、影响行数和调用位置。

四、使用 DB::listen 拦截慢查询

通过监听数据库查询事件,可以在每次查询执行后判断其耗时,并将超过阈值的查询记录到日志中。

1、在 AppServiceProvider 的 boot 方法中添加监听器:DB::listen

2、设置监听回调函数,接收 $query、$bindings、$time 和 $connection 参数。

3、判断 $time 是否超过预设阈值(如 50ms),若超过则写入日志:Log::warning('Slow query', [...])

4、结合 Laravel 日志系统,定期检查 storage/logs 中的慢查询记录。

五、结合 EXPLAIN 分析 SQL 执行计划

对于发现的慢查询,使用 EXPLAIN 命令分析其执行计划,确认是否使用索引、是否存在全表扫描等问题。

1、复制可疑的 SQL 语句,在数据库客户端中执行:EXPLAIN SELECT ...

2、查看输出结果中的 type、key、rows 和 Extra 字段。

3、确认是否使用了正确的索引,避免出现 type=ALL 或 Extra=Using filesort

4、根据分析结果优化 SQL 或添加合适的数据库索引。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2632

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1632

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1513

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

952

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1418

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1234

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1447

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1306

2023.11.13

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

43

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8.8万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 7.7万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号