如果你在做后台开发,那 mysql 优化场景肯定会碰到的,优化场景中首先上手的就是慢日志。

慢日志使用前的准备工作

使用慢日志之前,需要确定服务器的 MySQL 是否开启了慢日志,使用下述 SQL 语句进行查询(需要有权限,如果你是 root 账户,直接操作即可)

show variables  like '%slow_query_log%';

查询结果如下所示,只有开启了日志,才能进行慢日志文件查看。

除此之外,在使用下述命令查看一下,当前服务器配置的慢日志记录时间,即SQL查询超过多长时间才会被记录。

show variables like 'long_query_time';

例如下图所示,当前慢日志记录的时间为 3+ 秒。

如果服务器没有开启慢日志,在搜索引擎寻找开启颁发,然后重启 MySQL 即可。

慢日志开启之后,服务器运行几天,就可以去下载慢日志文件了,例如当前我(橡皮擦)使用的慢日志如下所示。

慢日志的格式如下图所示:

上图中的相关参数说明如下:

User@Host: 账号[密码] @ 服务器地址 []  Id: 570368
Query_time: 7.025717  Lock_time: 0.000000 Rows_sent: 286349  Rows_examined: 286349

Query_time 表示用了 7.025717 秒, Lock_time 表示锁了 0.000000 秒, Rows_sent 表示返回 286349 行, Rows_examined 表示一共查到 286349 行。

解析慢日志

从远程服务器下载慢日志文件之后,就可以对其进行分析了,这里重点使用的工具是 mysqldumpslow ,此时需要注意,分析是在本地电脑实施的,所以需要检查本地 mysqldumpslow 是否正常运行。

进入 MySQL 安装目录的 bin 文件夹,寻找 mysqldumpslow.exe 程序,如果发现仅有 mysqldumpslow.pl 文件(该文件一般是由于你的 MySQL 是使用 PhpStudy 工具安装的),需要再安装一个工具,名称为 ActivePerl ,这是由于 mysqldumpslow.pl 是 perl 程序,我们需要 perl 编译器。

安装 ActivePerl 时,注意配置 Path 环境变量,然后通过控制台进入到 MySQL 下的 bin 目录,首先使用 perl mysqldumpslow.pl --help ,查看是否能正常使用 mysqldumpslow 工具。

出现下图输出,即表示配置成功。

其中涉及到很多关键字,稍微需要记忆一下:

  • -s:是表示按照何种方式排序,ORDER 参数可以为 c:访问次数l:锁定时间r: 返回记录t: 查询时间al: 平均锁定时间ar: 平均返回记录数at: 平均查询时间
  • -t:表示 top n 的意思,返回前面多少条数据;
  • -g:后面可以编写正则表达式,进行数据筛选;

有了上述内容之后,就可以进行慢日志相关检索了,例如下述命令,其中 log 文件为慢日志文件路径。

perl mysqldumpslow.pl -s c -t 20 C:\Users\Administrator\Downloads\mysql-slow.log

按照访问此处排序获取前20条。

输出内容如上所示,其中 LIMIT N,N 是由于 mysqldumpslow 会认为这是一种类型的语句,合并显示。

上述红框内的数据为:

Count: 47  Time=3.20s (150s)  Lock=0.00s (0s)  Rows=0.0 (0), username[password]@localhost

解释如下:

Count: 47(执行总次数) Time=3.20s(单次执行时间) (150s)(总执行时间) Lock=0.00s (0s)(等待锁的时间) Rows=0.0(单次返回记录数) (0)(总返回记录数), username[password]@localhost

除了慢日志以外,日常运维还要关注 MySQL二进制日志MySQL通用查询日志MySQL错误日志 ……
在写 SQL 语句的时候,注意 explain 的使用哦~

支持博主时间

今天是持续写作的第 279 / 365 天。
可以关注我,点赞我、评论我、收藏我啦。

更多精彩

  • Python 爬虫 100 例教程导航帖(连续3年,不断更!)

看一篇就学会系列,mysql慢日志查看,本地mysql是使用phpstudy安装的相关推荐

  1. 【MySQL】MySQL 8 IDEA连接本地MySQL报错 Host DESKTOP-MISSMJIJ is not allowed to connect to this serv

    1.背景 在window10 下开发,MySQL 8 IDEA连接本地MySQL报错 MySQL 8 Host DESKTOP-MISSMJIJ is not allowed to connect t ...

  2. Mac查看本地 MySQL版本信息

    MacBookPro如何查看本地mysql版本 step command + space 输入terminal后回车打开终端,如下图所示: -- 输入 mysql -u root -p 若出现如下错误 ...

  3. mysql 二进制日志查看_使用mysqlbinlog从二进制日志文件中查询mysql执行过的sql语句 (原)...

    前提 MySQL开启了binlog日志 操作 1. 查看MySQL是否开启binlog(进mysql操作) mysql> show variables like 'log_bin%'; 2. 查 ...

  4. mysql 二进制日志查看_使用mysqlbinlog查看二进制日志

    (一)mysqlbinlog工具介绍 binlog类型是二进制的,也就意味着我们没法直接打开看,MySQL提供了mysqlbinlog来查看二进制日志,该工具类似于Oracle的logminer.my ...

  5. mysql 搭建日志服务器_rsyslog+mysql+loganalyzer 环境搭建日志服务器

    环境:CentOS6.6 rsyslog+mysql+loganalyzer 环境搭建日志服务器 Client端:192.168.2.10 MySQL服务器:192.168.2.11 # Client ...

  6. 查看从库mysql同步错误日志_常见MySQL同步错误恢复方法

    1.1236错误解决办法 由于主服务器异外重启,导致从报错,错误如下:mysql>showslavestatus\G Master_Log_File:mysql-bin.000288 Read_ ...

  7. 电脑强制关机导致本地mysql无法启动_本地mysql因为电脑突然重启造成了mysql无法启动...

    本地mysql因为电脑突然重启造成了mysql无法启动 记录一次mysql断电后无法启动问题 无奈的断电.出现mysql无法启动. 1.查看error 130313 15:31:13 [Note] P ...

  8. redis 双写一致性 看一篇成高手系列1

    首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用.在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作. 但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存.又或者 ...

  9. redis 双写一致性 看一篇成高手系列 一

    首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用.在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作. 但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存.又或者 ...

  10. redis 延时任务 看一篇成高手系列 二

    引言 在开发中,往往会遇到一些关于延时任务的需求.例如 生成订单30分钟未支付,则自动取消 生成订单60秒后,给用户发短信 对上述的任务,我们给一个专业的名字来形容,那就是延时任务.那么这里就会产生一 ...

最新文章

  1. Makefile理解
  2. Warm Up before Exercise
  3. python if判断字符串_python之条件判断、循环和字符串格式化
  4. 【行业趋势】人工智能凭什么“教育”人
  5. 电脑不读u盘怎么解决_电脑无法识别U盘解决方法
  6. Numpy.random中shuffle与permutation的区别(转)
  7. 【栈】【856. 括号的分数】【中等】(需回顾)
  8. 可自动定时切换的选项卡/滑动门导航代码
  9. 使用扩展技术对SAP Fiori应用进行端到端的增强,一个实际案例介绍
  10. .hpp文件_文件上传漏洞另类绕过技巧及挖掘案例全汇总
  11. 流量复制_详解Linux系统流量复制--gor、tcpcopy、nginx模块流量复制等
  12. 前端学习(1879)vue之电商管理系统电商系统之通过axios拦截器添加token认证
  13. Codeforces Round #530 Div. 1 自闭记
  14. android studio 引入httpclient,HttpClient不会导入Android Studio
  15. Android GridView属性集合
  16. Qos拥塞避免原理与实验
  17. 计算机中英文打字文章,中英文混合打字文章
  18. 当我跨过沉沦的一切,向着永恒开战的时候,你是我的军旗。——王小波
  19. PTA:7-120 新浪微博热门话题 (30分)--(map方法,加解析)
  20. 2021级《高级语言》重现 F 方阵

热门文章

  1. java 填数独_java – 数独求解方法
  2. 消控中心人员配置_消控室的设置要求有哪些?
  3. Go语言系列——Go语言介绍
  4. 超精准识别语音字幕工具,Pr可用
  5. 应变式传感器的原理与优点
  6. 御用导航提示提醒_AR实景导航,让你安全驾驶,不再“绕弯”
  7. shal+php,PHP微信开发——第二弹
  8. 路由器与交换机的作用及区别
  9. 地球到火星的通信问题
  10. 关于哔哩哔哩视频,音频合并(使用ffmpeg批量处理)