mysql数据库日志截断,MySQL基础(十一):查询截取分析

下面是小凰凰的简介,看下吧!

💗人生态度:珍惜时间,渴望学习,热爱音乐,把握命运,享受生活

💗学习技能:网络 -> 云计算运维 -> python全栈( 当前正在学习中)

💗您的点赞、收藏、关注是对博主创作的最大鼓励,在此谢过!

有相关技能问题可以写在下方评论区,我们一起学习,一起进步。

后期会不断更新python全栈学习笔记,秉着质量博文为原则,写好每一篇博文。

一、慢查询日志

1、什么是慢查询日志?

MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。

2、拿它来干什么?怎么干?

(1)用途及开启方法

干什么:找出查询较慢的sql,并用explain对该sql进行分析,找出问题症结进行sql优化!

使用前说明:

'默认情况下,MySQL数据库没有开启慢查询日志',需要我们手动来设置这个参数。

'当然,如果不是调优需要的话,一般不建议启动该参数' ,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志记录写入文件

查看是否开启及如何开启?

查看默认情况:SHOW VARIABLES LIKE '%slow_query_log%';

开启命令:set global slow_query_log=1;

# my.cnf中开启慢查询日志

# [mysqld]下配置:

slow_query_log=1;

slow_query_log_file=/var/lib/mysql/atguigu-slow.log

long_query_time=3;

log_output=FILE

(2)多慢的sql会被记录到日志?

查看当前多少秒算慢 :SHOW VARIABLES LIKE 'long_query_time%';

# 设置慢的阙值时间:

set global long_query_time=1

修改为阙值到1秒钟的就是慢sql

8dcb5381f3ff6f5885b5e5249868d463.png

重新断开会话,再连接!就可以看到值的变化了!

(3)慢查询日志实践

a633954836eaebc19f9852aaa78f8bf1.png

跟踪日志信息:

30a2c44275a31070f76382479c7cc45f.png

3、日志分析工具mysqldumpslow

命令参数详解:

s: 是表示按照何种方式排序

c: 访问次数

l: 锁定时间

r: 返回记录

t: 查询行数

al:平均锁定时间

ar:平均返回记录数

at:平均查询时间

t:即为返回前面多少条的数据;

g:后边搭配一个正则匹配模式,大小写不敏感的

工作常用参考:

得到返回记录集最多的10个SQL

mysqldumpslow -s r -t 10 /var/lib/mysql/atguigu-slow.log

得到访问次数最多的10个SQL

mysqldumpslow -s c -t 10 /var/lib/mysql/atguigu-slow.log

得到按照时间排序的前10条里面含有左连接的查询语句

mysqldumpslow -s t -t 10 -g "left join" /var/lib/mysql/atguigu-slow.log

另外建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现爆屏情况

mysqldumpslow -s r -t 10 /var/lib/mysql/atguigu-slow.log | more

二、show profile

1、show profile是什么?

它是mysql提供可以用来分析当前会话中语句执行的资源消耗情况。可以用于SQL的调优的测量

2、分析步骤

(1)查看当前mysql版本是否支持profile

show variables like 'profiling';

(2)开启profile

set profiling=1; # 没有global,默认是基于session会话的变量设置

(3)运行mysql命令

(4)查看结果

show profiles;

1f016a42d821b4ada5b88d3ce4626874.png

(5)诊断SQL

show profile cpu,block io for query n; # n为上一步前面的问题SQL数字号码

e68e8fc6c22bbb6b0b7caed0863d31b1.png

show profile命令参数释义:

type:

| ALL --显示所有的开销信息

| BLOCK IO --显示块IO相关开销

| CONTEXT SWITCHES --上下文切换相关开销

| CPU --显示CPU相关开销信息

| IPC --显示发送和接收相关开销信息

| MEMORY --显示内存相关开销信息

| PAGE FAULTS --显示页面错误相关开销信息

| SOURCE --显示和Source_function,Source_file,Source_line相关的开销信息

| SWAPS --显示交换次数相关开销的信息

(6)show profile分析时,一些比较重要问题

1. converting HEAP to MyISAM 查询结果太大,内存都不够用了往磁盘上搬了。

2. Creating tmp table 创建临时表(拷贝数据到临时表,用完再删除)

3. Copying to tmp table on disk 把内存中临时表复制到磁盘,危险!!!

4. locked

三、全局查询日志(了解)

在mysql的my.cnf中,设置如下:

#开启

general_log=1

# 记录日志文件的路径

general_log_file=/path/logfile

#输出格式

log_output=FILE

此种日志不推荐这样永久开启,因为会极大影响数据库性能!

命令

set global general_log=1;

# 全局日志可以存放到日志文件中,也可以存放到Mysql系统表中。存放到日志中性能更好一些,存储到表中

set global log_output='TABLE'; # 这里的TABLE不能改,不支持指定表

此后 ,你所编写的sql语句,将会记录到mysql库里的general_log表,可以用下面的命令查看

select * from mysql.general_log;

注意这里再次说下:set变量的三种方法(my.cnf、global、session),my.cnf是永久有效,global是重启mysql服务后失效,session是当前会话有效!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355562.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

component是什么接口_阿里高级技术专家:整洁的应用架构“长”什么样?

很多同学不止一次和我反馈,我们的系统很混乱,主要表现在:应用的层次结构混乱:不知道应用应该如何分层、应该包含哪些组件、组件之间的关系是什么;缺少规范的指导和约束:新加一段业务逻辑不知道放在什么地方…

php把1拆分成三份,【php】位运算如何拆分

举例,比如说下面可以组合成71|2|4; // 7那么比如我给一个15,怎么拆分成:1、2、4、8,或者是任意其他数,怎么进行拆分回答不熟悉php。可以先确定这个数占多少位,比如64或者32等。然后再左移位,按位…

20155202 实验四 Android开发基础

20155202 实验四 Android开发基础 实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android、组件、布局管理器的使用; 3.掌握Android中事件处理机制。 实验要求 第24章:初识Android任务一:完成Hello World…

死信队列和延迟队列_在实践中使用延迟队列

死信队列和延迟队列通常,在某些情况下,当您有某种工作或作业队列时,有必要不立即处理每个工作项或作业,而是要延迟一些时间。 例如,如果用户单击一个按钮来触发要完成的某项工作,而一秒钟后,用户…

python的代码在哪写_python代码在哪里编写

编写python代码,可以在自带的ide中写,也可以使用第三方编辑器,下面介绍几款常见的python IDE 1. VimVim 可以说是 Python 最好的 IDE。Vim 是高级文本编辑器,旨在提供实际的 Unix 编辑器‘Vi’功能,支持更多更完善的特…

nio框架中的多个Selector结构

随着并发数量的提高,传统nio框架采用一个Selector来支撑大量连接事件的管理和触发已经遇到瓶颈,因此现在各种nio框架的新版本都采用多个Selector并存的结构,由多个Selector均衡地去管理大量连接。这里以Mina和Grizzly的实现为例。 在Mina 2…

js 编码 php解码,浅谈php和js中json的编码和解码

php中1)编码$jsonStr json_encode($array)2)解码$arr json_decode($jsonStr)echo json_encode("中文", JSON_UNESCAPED_UNICODE);添加参数:JSON_UNESCAPED_UNICODE即可。测试环境:PHP Version 5.5.36js中1. 编码var str obj.toJSONString()…

如果您在2015年编写过Java代码-这是您不容错过的趋势

去年我们有机会遇到的最有趣趋势的实用概述 在这篇文章中,我们将回顾构成我们2015年对话的5个主题和新发展。与其他许多年终总结保持较高水平的不同,我们将做一个更实际的操作不用流行语 。 好吧,没有太多*流行语。 与往常一样,对…

mel滤波器组频率响应曲线_了解二阶滤波器的奈奎斯特图

在之前的文章中,我介绍了奈奎斯特图,然后我们通过检查奈奎斯特曲线和截止频率与一阶无源滤波器之间的关系,更详细地探索了这些类型的图。在本文中,我们将查看二阶滤波器的奈奎斯特图。二阶过滤器当我说“二阶”滤波器时&#xff0…

CJOJ 免费航班

Description 小Z在MOI比赛中获得了大奖,奖品是一张特殊的机 票。使用这张机票,可以在任意一个国家内的任意城市之间的免费飞行,只有跨国飞行时才会有额外的费用。小Z获得了一张地图,地图上有城市之间的飞机航班和 费用。已知从每个…

java perl5compiler,Java中正则表达式使用方法详解(四)

3.2 HTML处理实例一下面一个任务是分析HTML页面内FONT标记的所有属性。HTML页面内典型的FONT标记如下所示程序将按照如下形式,输出每一个FONT标记的属性在这种情况下,我建议你使用两个正则表达式。第一个如图十一所示,它从字体标记提取出“&q…

java 缓存接口,java项目中,针对缓存问题的处理方式【接口中的处理方式】

1、在service包中,分别建立了关于缓存的一系列的接口、类等,封装到一个工具包中;临时缓存的接口(代码部分):packagecom.tools;importjava.util.Date;public interfaceCacheTemplet {//设置添加永久缓存,(缓存唯一索引,…

【hh】我胡汉三又回来了

hh 差不多半年没来机房了,高一的都已经碾压我100题了 开始得比较晚,估计比高一的早两三个月吧,停了这半年落下了不少。 但是没有关系啊,学OI纯粹是好玩嘛,一开始报名的时候根本不知道有联赛这回事(其实报名…

python爬取知乎标题_python爬虫 爬取知乎文章标题及评论

目的:学习笔记2.首先我们试着爬取下来一篇文章的评论,通过搜索发现在 response里面我们并没有匹配到评论,说明评论是动态加载的。3.此时我们清空请求,收起评论,再次打开评论 4.完成上面操作后,我们选择XHR&…

php curl 要安装pear,MacOS 安装pear

1、下载Pearcurl -O https://pear.php.net/go-pear.phar2、安装Pearsudo php -d detect_unicode0 go-pear.phar安装过程需要进行简单的配置,如下Below is a suggested file layout for your new PEAR installation. Tochange individual locations, type the number…

CentOS7 下调教mysql记实 之一

迁移数据库时遇到错误: Error Code: 1418. This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) 解释&…

java 映射数组_Java中的数组,列表,集合,映射,元组,记录文字

java 映射数组有时,当我对JavaScript的强大功能和表现力感到兴奋时,我发现自己错过了Java世界中的一两个功能。 除了lambda表达式/闭包或任何您想称为“匿名函数”的东西之外,它还对数组,数组,列表,集合&am…

知道接口地址 如何传数据_如何选显示器连接线?四种主流接口要知道

前两天家里电脑显示器的线坏了,火急火燎的买了根线,谁知道买回来之后接口不匹配,不能用。显示器为什么要有这么多接口呢?这些接口又有什么区别呢?必须把它搞清楚!这不,经过我的不屑努力&#xf…

docker rabbitmq php扩展,Docker开启RabbitMQ延时消息队列

前言经常在开发中会遇到一些不需要同步执行的业务,那我们就需要用到消息队列来进行异步执行,但是对于某些业务就还需要用到延时的功能,比如订单支付超时关闭,那么这个时候我们就需要开启消息队列的延时功能,当然也有朋…

[转]Eclipse插件开发之基础篇(3) 插件的测试与调试

原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/08/17/eclipse_plugin_1_1_2.html 1. 使用JUnit对插件进行测试 Eclipse中已经嵌入了JUnit,我们可以使用JUnit为插件进行单体测试。一般的JUnit是不可以对插件部分(对Eclipse的API依赖的部分)进行测…