背景

由于系统在生产环境运行了一段时间,发现系统超时的接口的请求越来越多,通过服务器的日志发现同样的接口,有时候会超过2s,  有时候又几百毫秒就完成,通过把 接口的 sql拿出来分析执行,工作量有点大。还好之前mysql打开了慢日志的开关,通过对mysql的慢日志进行分析,可以解决大部分的问题。

慢日志设置

1 连接数据库

mysql -h127.0.0.1 -P3306-uroot -pxxxxx;

2  选择数据库

use mysql;

3  查看慢日志的设置

show variables like '%query%';

long_query_time:单位秒,脚本运行的时间操作这个设置为慢查询

slow_query_log: 慢日志的开关

slow_query_log_file:慢日志保存的路径

慢日志分析

1 慢日志下载

通过sz 命令把慢日志下载到本地进行分析

2慢日志的格式说明

# Time: 150401 11:24:27

# User@Host: root[root] @ localhost [127.0.0.1] Id: 7

# Query_time: 0.034002 Lock_time: 0.000000 Rows_sent: 3 Rows_examined: 3

use libu;

SET timestamp=1427858667;

select * from aaa;

分析如下:

(1) Time: 执行时间

(2) User@Host: 执行sql的主机信息

(3) Query_time: sql的执行信息,

Lock_time: 锁定时间,

Rows_sent: 发送(结果)行数,

Rows_examined:扫描的行数

(4) timestamp: 执行时间

(5) select * from aaa; : 查询语句内容

3慢日志分析的命令

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

c: 访问计数

l: 锁定时间

r: 返回记录

t: 查询时间

al:平均锁定时间

ar:平均返回记录数

at:平均查询时间

-t, 是top n的意思,即为返回前面多少条的数据;

-g, 后边可以写一个正则匹配模式,大小写不敏感的;

比如

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

mysqldumpslow -s r -t 10 /database/mysql/mysql06_slow.log

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

mysqldumpslow -s c -t 10 /database/mysql/mysql06_slow.log

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

mysqldumpslow -s t -t 10 -g “left join” /database/mysql/mysql06_slow.log

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

mysqldumpslow -s r -t 20 /mysqldata/mysql/mysql06-slow.log | more

4数据分析结果

通过上述的命令,查找到查询时间比较长的 sql,找到对应的业务进行优化,优化的思路:

1 通过条件的关联减少查询的数据量

2通过建立索引加快查询

3通过业务手段减少数据量的查询

例如:一般的系统都有分页功能的查询,需要查询到请求的总数量,由于目前需要显示总的数量,没有办法避免不查询总的数量,这个查询会随着数据量的增多而变慢,只能通过业务手段进行处理,例如只是查询某个时间段的数据,而不是查询所有的数据的数量。

mysql 请求超时_由请求超时引发的mysql慢日志问题相关推荐

  1. mysql死锁语句_记一次神奇的Mysql死锁排查

    背景 说起Mysql死锁,之前写过一次有关Mysql加锁的基本介绍,对于一些基本的Mysql锁或者死锁都有一个简单的认识,可以看下这篇文章为什么开发人员需要了解数据库锁.有了上面的经验之后,本以为对于 ...

  2. 负载均衡mysql的使用_使用负载均衡集群集化 MySQL - Azure Virtual Machines | Microsoft Docs...

    使用负载均衡的集来群集化 Linux 上的 MySQL 04/14/2015 本文内容 重要 经典 VM 将于 2023 年 3 月 1 日停用. 如果从 ASM 使用 IaaS 资源,请在 2023 ...

  3. 阿里高可用mysql搭建方案_阿里云环境迁移记录 - MYSQL高可用搭建

    MYSQL高可用方案主要分为两大类,一类是前置管理,一类是后置管理. 前置管理的思想是利用各种前置管理工具,动态切换或者分发请求到不同的实例并切换master,如keepalived.MHA.pack ...

  4. c 获取mysql列数据_转 用C API 操作MySQL数据库

    用C API 操作MySQL数据库 参考MYSQL的帮助文档整理 这里归纳了C API可使用的函数,并在下一节详细介绍了它们.请参见25.2.3节,"C API函数描述". 函数 ...

  5. mysql 前台启动_从Windows命令行启动MySQL

    可以从命令行手动启动MySQL服务器.可以在任何版本的Windows中实现. 要想从命令行启动mysqld服务器,你应当启动控制台窗口(或"DOS window")并输入命令: C ...

  6. mysql编译参数查看_查看 apache,nginx,mysql 安装时的编译参数

    快速查看服务器软件的编译参数:1.nginx编译参数: nginx -V 2.apache编译参数: cat apache的安装目录/build/config.nice 3.php编译参数: php ...

  7. mysql 命令 例子_一个例子运用了所用mysql数据库操作命令

    Mysql常用命令解析 修改密码的几种方法 方法一:登陆进mysql set password for root@localhost = password('123'); /这种方法也适用于给某个用户 ...

  8. mysql 最小配置_如何配置全世界最小的 MySQL 服务器

    配置全世界最小的 MySQL 服务器--如何在一块 Intel Edison 为控制板上安装一个 MySQL 服务器. 介绍 在我最近的一篇博文中,物联网,消息以及 MySQL,我展示了如果Parti ...

  9. docker容器mysql头文件_在Docker容器中使用MySQL数据库

    开发过程中经常需要安装.调试mysql数据库,还需要在各种操作系上安装包依赖,实在是繁琐,因此就研究了一下如何在docker上运行一个mysql镜像,省却了我安装.找依赖的问题. 注:本文所有内容均在 ...

  10. 32位mysql安装包_软件测试基础——Linux系统搭建MySQL数据库

    一.mysql下载 1. 下载:官方网址:https://dev.mysql.com/downloads/mysql/ 2. 选择相应的版本,由于cenos是基于红帽的,所以Select Operat ...

最新文章

  1. ASM-Net:可解释的美学评分及图像剪裁
  2. python适合做后端开发吗-Python后端开发是什么职位?
  3. Jenkins - Extended E-mail配置教程
  4. wxPython--学习笔记
  5. 计算平均成绩,科目数未知
  6. HiveSql 日期格式转换
  7. Ubuntu下安装配置Honeyd蜜罐
  8. 在c语言万年历中怎么添加节日,用C实现简单万年历
  9. 转torchscript报错:Expected a value of type ‘Tensor (inferred)‘ for argument ‘scale‘ but instead found t
  10. VMware15Pro 安装CentOS7
  11. WEB应用防火墙(WAF启明设备)
  12. mac book pro 最全快捷键
  13. html的常用标签,系列篇
  14. 【自学笔记】尚硅谷数据结构与算法Chapter 3 链表
  15. matlab电位图仿真实验,基于MATLAB的静电场描绘实验仿真
  16. 有哪些网站,一旦知道,你就离不开了
  17. EI中的知名高校大学学报(共28所高校)
  18. 20145120黄玄曦《网络对抗》恶意代码分析
  19. Python调用Geopandas包矢量化txt点数据为shp数据
  20. arcpy游标使用(一)——Cursor

热门文章

  1. vim替换字符串带斜杠_Linux vi/vim最全使用指南
  2. 小程序统一服务消息_微信团队发布小程序模板消息能力调整通知:小程序订阅消息接口正式上线...
  3. python原理及代码_链表的基本原理及Python代码的实现,与,python
  4. 微型计算机的分类有,微型计算机的种类很多,主要分为台式机,笔记本,还有什么...
  5. vs2008下如何部署arcengine开发的程序
  6. 电大计算机网络技术基础,电大--2016年电大 计算机与网络技术基础小抄已排版.doc...
  7. pytorch 实现 LSTM AutoEncoder 与案例
  8. Linux运行jnetpcap程序(含配置步骤)
  9. 西奥服务器修改楼层参数,西奥FOVF梯调试介绍.doc
  10. 软件测试缺陷定义和管理