mysql记录耗时的sql实例详解

发布时间 - 2026-01-11 02:56:43    点击率:

mysql记录耗时的sql

mysql可以把耗时的sql或未使用索引的sql都记录在slow log里,供优化分析使用。

1.mysql慢查询日志启用:

mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出当前程序里有很耗费资源的sql语句,那如何打开mysql的慢查询日志记录呢?

mysql> show variables like 'log_slow_queries';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| log_slow_queries | OFF | 
+------------------+-------+
1 row in set (0.01 sec)

mysql> 

这说明slow log功能没有启用,要启用需要修改mysql的配置文件,在配置文件"[mysqld]"里添加如下俩参数:

long_query_time=1
log-slow-queries=/var/mysql/logs/slow.log

说明

long_query_time

此参数表示的是慢查询的度量时间,单位是秒,最小是1,缺省值是10,凡是执行时间超过long_query_time的sql语句都会记录到慢查询日志中

log-slow-queries[=file_name]

file_name参数可选,缺省值是host_name-slow.log,如果指定了file_name参数的话,mysql就会把慢查询的日志记录到file_name所设定的文件中,如果file_name提供的是一个相对路径,mysql会把日志记录到mysql的data目录中,这个参数只能在配置文件里添加,无法在命令行里执行。

2.将未使用索引查询也记录到slow log中的配置

在mysql的启动配置文件或命令行参数中增加“log_queries_not_using_indexes” 参数就可以把未使用索引查询语句添加到slow log里了。

样例如下:

[root@localhost mysqlsla-2.03]# more /etc/my.cnf 
[mysqld]
datadir=/var/lib/mysql
log_bin=/tmp/mysql/bin-log/mysql-bin.log
log_bin=ON
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1


log_slow_queries=/tmp/127_slow.log
long_query_time=1
log_queries_not_using_indexes

.......

重启mysql后,检查结果如下:

mysql> show variables like 'log_slow_queries';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| log_slow_queries | ON | 
+------------------+-------+
1 row in set (0.00 sec)

mysql> show variables like 'long_query_time';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| long_query_time | 2  | 
+-----------------+-------+
1 row in set (0.00 sec)

mysql>

以上就是mysql记录耗时的sql实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# MySQL  # 记录耗时  # 记录耗时的操作  # 记录耗时如何实现  # SQL判断是否"存在"  # 还在用 count 操作?很耗时的!  # 查看django执行的sql语句及消耗时间的两种方法  # java通过MySQL驱动拦截器实现执行sql耗时计算  # 配置文件  # 的是  # 会把  # 命令行  # 如有  # 执行时间  # 希望能  # 可选  # 谢谢大家  # 重启  # 里了  # 就可以  # 检查结果  # 或未  # 疑问请  # 样例  # 只能在  # 目录中  # long_query_time  # sec 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  python中快速进行多个字符替换的方法小结  如何用IIS7快速搭建并优化网站站点?  php json中文编码为null的解决办法  Laravel定时任务怎么设置_Laravel Crontab调度器配置  如何在橙子建站上传落地页?操作指南详解  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  Laravel如何实现多对多模型关联?(Eloquent教程)  详解jQuery停止动画——stop()方法的使用  如何在Tomcat中配置并部署网站项目?  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  Laravel如何实现文件上传和存储?(本地与S3配置)  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  香港服务器网站卡顿?如何解决网络延迟与负载问题?  如何在建站之星绑定自定义域名?  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  Python函数文档自动校验_规范解析【教程】  JavaScript数据类型有哪些_如何准确判断一个变量的类型  千库网官网入口推荐 千库网设计创意平台入口  Laravel如何使用Blade模板引擎?(完整语法和示例)  微信小程序 scroll-view组件实现列表页实例代码  JavaScript实现Fly Bird小游戏  如何确认建站备案号应放置的具体位置?  如何快速搭建自助建站会员专属系统?  晋江文学城电脑版官网 晋江文学城网页版直接进入  如何用PHP工具快速搭建高效网站?  ,怎么在广州志愿者网站注册?  如何在阿里云高效完成企业建站全流程?  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  如何在IIS中新建站点并配置端口与IP地址?  免费视频制作网站,更新又快又好的免费电影网站?  油猴 教程,油猴搜脚本为什么会网页无法显示?  canvas 画布在主流浏览器中的尺寸限制详细介绍  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  iOS验证手机号的正则表达式  高端建站三要素:定制模板、企业官网与响应式设计优化  javascript读取文本节点方法小结  Android仿QQ列表左滑删除操作  js实现点击每个li节点,都弹出其文本值及修改  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  Laravel如何与Pusher实现实时通信?(WebSocket示例)