查询mysql耗时最久的语句_Mysql开启慢查询记录耗时SQL语句_mysql查询耗时的sql语句_ptianfeng的博客-程序员秘密

技术标签: 服务器  mysql  数据库  

原文地址:https://blog.csdn.net/weixin_34381648/article/details/113340643

 

简述

网站数据达到一定的数量级,就会有页面卡,出现50x等各种问题,mysql服务器CPU居高不下等症状。因为sql缓慢导致php缓慢,导致超时。这个时候应该先从mysql入手。就像看病一样,要先找病根,记录慢查询日志,就是观察期,观察到迹象我们就可以对症下药了。

配置参数说明

主要靠三个参数来配置,我们用通俗的话来解释。

1、开关(不多说,关闭就不记录了)

slow_query_log

2、log存储位置(记录下来,我得知道你在哪吧,一般将它存放到mysql数据目录,也就是和你创建的数据库在同级目录)

slow_query_log_file

3、超时时间 (我得让你知道多慢我忍不了)

long_query_time

设置方法

方法一:全局变量设置

将 slow_query_log 全局变量设置为“ON”状态

mysql> set global slow_query_log='ON';

设置慢查询日志存放的位置(默认在 mysql data 目录下)

mysql> set global slow_query_log_file='slow.log';

记录超时1秒的sql语句

mysql> set global long_query_time=1;

注意:无需重启即可生效,但重启会失效。set global 改的参数是暂时的,想重启不变请配合修改mysql配置文件。

方法二:配置文件设置

修改配置文件my.cnf(Windows 下是my.ini),在[mysqld]下的下方加入

slow_query_log = ON

slow_query_log_file = slow.log

long_query_time = 1

注意:修改配置文件之后需要重启mysql服务。

查看设置后的参数

mysql> show variables like 'slow_query%';

+---------------------+----------+

| Variable_name | Value |

+---------------------+----------+

| slow_query_log | ON |

| slow_query_log_file | slow.log |

+---------------------+----------+

2 rows in set

mysql> show variables like 'long_query_time';

+-----------------+----------+

| Variable_name | Value |

+-----------------+----------+

| long_query_time | 1.000000 |

+-----------------+----------+

1 row in set

测试生成log

mysql> select sleep(2);

从log文件中发下慢查询

# Query_time: 2.062500 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0

use test;

SET timestamp=1515638101;

select sleep(2);

重新生成log文件

有时候log文件过大需要清空,直接删除log文件,本以为下次再有慢查询会自动生成文件并记录,其实并不会生成。当然重启mysql是可以生成的,但是生产环境重启mysql一定要慎重,不到万不得已不要重启mysql。在删除log文件之后,重新生成log文件需要运行 flush logs 命令。

mysql> flush logs;

Query OK, 0 rows affected

好了,mysql记录慢查询的步骤就这些了,通过记录慢的 sql 语句来开始你的优化之旅吧!
————————————————
版权声明:本文为CSDN博主「Azusa的小梓」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_34381648/article/details/113340643

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ptianfeng/article/details/115180749

智能推荐

Java 程序员必须了解的 7 个性能指标_kaikaihit的博客-程序员秘密

来源:王韵菲 www.evget.com/article/2015/11/16/22990.html本文中,小编搜集了7个最有影响的衡量标注,让你可以不依赖日志文件来了解应用程序。现在,让我们看看这些性能指标,并了解如何查看并收集它们:1.响应时间和吞吐量根据应用程序...

JAVA初学记(一)利用多态性编程,实现求三角形、正方形和圆形的面积_cs272185的博客-程序员秘密

package shape;abstract public class shape {abstract double getArea();}package shape;public class circle extends shape{double r=0;public circle(double r){this.r=r;}double getArea(){double s...

Android sqlite 表名中各种特殊符号处理。_sqlit 去掉特殊符号_茶卡y的博客-程序员秘密

当Android本地表中,因为需求,需要创建表的表名中,有特殊符号,例如“&”,“-”, “+”,“%”,空格等等。如果按照正常流程的创建表语句,例如CREATE TABLE IF NOT EXISTS TestRecord*d ffsd ( id integer PRIMARY KEY AUTOINCREMENT);会直接报错,崩溃。需要添加 “”,或者‘’,让sql语句认识到...

mysql中怎么查询查询表单_MySQL<表单&集合查询>_咔咔伊的博客-程序员秘密

表单查询简单查询SELECT语句查询所有字段指定所有字段:select 字段名1,字段名2,...from 表名;select * from 表名;查询指定字段select 字段名1,字段名2,...from 表名;按条件查询带关系运算符的查询SELECT 字段名1,字段名2,……FROM 表名WHERE 条件表达式;带IN关键字的查询SELECT *|字段名1,字段名2,……FROM 表名WHE...

7. 实现用户的历史记录功能_历史记录查看如何设计_最爱喝酸奶的博客-程序员秘密

例如,很多应用程序都有浏览用户的历史记录的功能:浏览器可以查看最近访问过的网页。视频播放器可以查看最近播放过的视频文件。Shell可以查看用户输入过的命令。要求:现在制作一个简单的猜数字游戏,添加历史记录功能,显示用户最近猜过的数字。解决方案:使用容量为n的队列存储历史记录。使用标准库中collections中的deque,它是一个双端循环队列;再使用pickle模块将历史记录存储...

dubbo源码分析_dubbo框架源码分析_csdnxingyuntian的博客-程序员秘密

其实dubbo整个框架内容并不算大,仔细看的话可能最多两天看完一遍,但是目前还是没领悟到怎么做到的扩展性,学习深度还不够~要学习dubbo源码的话,必须要拿出官方高清大图才行。这张图看起来挺复杂的样子,真正拆分之后对照源码来看会发现非常清晰、简单直观。1.如何跟进源码入口就是各种dubbo配置项的解析,都是spring namespace,可以看到dubbo jar包下ME

随便推点

Redis:默认配置文件redis.conf详解_StriveFarrell的博客-程序员秘密

转载地址:https://www.cnblogs.com/zxtceq/p/7676911.html 

UE4中蓝图转换成C++代码_ue4如何将蓝图提出来源码_游戏鸟的博客-程序员秘密

1.进行如下设置2.将项目打包出来(任意一平台都行,本文以Windows为例)3.打包完成后才回在原项目工程中生成蓝图转换成c++的代码4.如图路径(转换后的代码路径较深所以一步一步说明)C_SourceCode是我建立UE4的项目名Intermediate文件夹内是转化后的代码WindowsNoEditor 是本文之前说的打包的是windows平台

04Linux中jdk-tomcat-docker的安装_没事找找Bug的博客-程序员秘密

环境安装安装软件一般有三种方式: rpm(jdk:):在线发布一个SpringBoot项目! 解压缩(tomcat):启动并通过外网访问,也就是发布网站! yum在线安装(docker):直接安装运行跑起来docker既可以! JDK安装(rpm安装)我们开发 java1、rpm下载地址Java Downloads | Oracle2、安装Java环境# 检测当前系统是否存在Java环境# 如果有的话就需要卸载# rpm -qa|grep jdk .

从零开始--系统深入学习android(实践-让我们开始写代码-指南-1.Hello,World)_从零开始写代码_君望永远的博客-程序员秘密

第1章 Hello,World作为一名开发者,我们学习一个平台的第一印象肯定都是写一个“Hello,World”。在Android上写一个“Hello,World”是很简单的,由于我们使用Eclipise IDE,它提供了ADT这么强大的插件,这样创建和管理一个项目就更简单了,可以大大缩短我们的时间。在开始之前,你应该确认你已经安装了SDK和ADT插件。本章会根据以下几个部分来讲述:

tf.nn.fixed_unigram_candidate_sampler解释_Z-Pilgrim的博客-程序员秘密

https://www.tensorflow.org/api_docs/python/tf/random/fixed_unigram_candidate_sampler上面链接是官网解释,看了一会儿感觉没看懂 跑了几个列子有点懂了。本文结合https://www.w3cschool.cn/tensorflow_python/tf_nn_fixed_unigram_candidate_...

ZF网络架构深度详解_LoveMIss-Y的博客-程序员秘密

前言:ZF网络是2013年提出的,网上有很多关于它的介绍和讲解,但是很多内容讲的不太好(个人感觉),于是花时间收集了一些资料,整理了一些比较好的文章,从头到尾把ZFNet说了一遍。一、ZFNet简介1.1 为什么起名ZFnetwork ILSVRC 2013获胜者是来自Matthew Zeiler和Rob Fergus的卷积网络。它被称为ZFNet(Zeiler&...

推荐文章

热门文章

相关标签