前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MYSQL定位慢查询

MYSQL定位慢查询

作者头像
MonroeCode
发布2021-12-28 12:22:45
2K0
发布2021-12-28 12:22:45
举报
文章被收录于专栏:Java技术分享Java技术分享

在web开发中,我们经常会写出一些SQL语句,一条糟糕的SQL语句可能让你的整个程序都非常慢,超过10秒一般用户就会选择关闭网页。

如何优化SQL语句将那些运行时间比较长的SQL语句找出呢?

MySQL给我们提供了一个很好的功能,那就是慢查询!所谓的慢查询就是通过设置来记录超过一定时间的SQL语句!

那么如何应用慢查询呢? 一、开启MySQL的慢查询日志功能 默认情况下,MySQL是不会记录超过一定执行时间的SQL语句的。要开启这个功能,我们需要修改MySQL的配置文件:

windows下修改my.ini,Linux下修改my.cnf文件。

在[mysqld]最后增加如下命令: set GLOBAL slow_query_log =ON ; 表示开启慢查询日志功能 set long_query_time = 1; 表示设置慢查询的时间为1S,默认为10S,有查询超过了这个时间,将会被记录到慢查询日志中,高版本的可以设置小数。 slow_query_log_file=c:/slow.log 表示慢查询日志存放的目录文件,默认在mysql的data目录下生成“主机名_slow.log”的文件来存放日志。 上面配置修改好后,重启动MYSQL服务吧!然后开始测试咯! 1、在MYSQL控制台输入命令:select sleep(2)

代码语言:javascript
复制
mysql> select sleep(2);
+----------+
| sleep(2) |
+----------+
|        0|
+----------+
1 row in set (2.00 sec)

2、再查看慢查询的日志文件,会看到以下信息。

代码语言:javascript
复制
# Time: 141014 14:28:52
# User@Host: root[root] @ localhost[::1]  Id:     1
# Query_time: 2.000114  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1413268132;
select sleep(2);

二、MYSQL数据库查看状态的命令:

show [session|global]status 注:不写默认的为session..session只取出当前会话的状态,global会取出从数据库启动到现在的状态。 show status 查看数据库状态,这里面的状态有很多,DBA应该了解大多数。 show status like ‘uptime’ 数据库启动时间(S) show status like ‘com_select’ 数据库执行了多少次查询 show status like ‘com_update’ 数据库执行了多少次更新 show status like ‘com_delete’ 数据库执行了多少次删除 show status like ‘com_insert’ 数据库执行了多少次插入

总是提示有敏感文字,发布不了,还有一些补充,

请看这个文章:https://cloud.tencent.com/developer/article/1072111

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档