MySQL 慢查询日志
MySQL有一种日志,叫做慢查询日志,主要就是用来记录一些耗时的查询操
作。通过这个日志我们就可以分析出哪些的操作是影响性能的,我们需要对其
进行一些优化措施。
视频链接:http://www.roncoo.com/course/view/658088f6e77541f5835b61800314083e
查看开启状态
上面的截图是我在 windows 下安装的 MySQL5.7 版本,我们可以发现,这个版本是开启了慢查询的。我在 CentOS6.9 下采用 yum 的方式安装的 MySQL5.7 默认没有开启慢查询日志。不管默认有没有给我们开启,我们是需要了解慢查询日志是如何开启的,开启的方式也非常简单。找到 MySQL 的配置文件,Windows 下是 my.ini,Linux 下的是 my.cnf。进行如下配置就可以了。
slow-query-log=1
slow_query_log_file="mysql-slow.log"
long_query_time=10
第一行是指定开启慢查询日志
第二行是指定慢查询日志的路径
第三行是指定查询时间大于多少的才进行记录,但是是毫秒,也就是操作大于 10ms 的操作都会被记录。
配置完毕之后要重启 MySQL 生效。
下面来看看慢查询日志的内容
C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe, Version: 5.7.16-log (MySQL Community Server (GPL)). started with: TCP Port: 3306, Named Pipe: (null) TimeId CommandArgument #Time: 2017-07-07T06:35:46.995201Z #User@Host: root[root] @ localhost [::1] Id:10 #Query_time: 12.522116 Lock_time: 0.000501 Rows_sent: 0 Rows_examined: 483968 use test; SET timestamp=1499409346; insert into test (id,name) (select uuid() id,name from test); #Time: 2017-07-07T06:36:15.258316Z #User@Host: root[root] @ localhost [::1] Id:10 #Query_time: 24.543267 Lock_time: 0.000501 Rows_sent: 0 Rows_examined: 967936 SET timestamp=1499409375; insert into test (id,name) (select uuid() id,name from test); #Time: 2017-07-07T06:37:15.021922Z #User@Host: root[root] @ localhost [::1] Id:10 #Query_time: 56.283040 Lock_time: 0.000499 Rows_sent: 0 Rows_examined: 1935872 SET timestamp=1499409435; insert into test (id,name) (select uuid() id,name from test); #Time: 2017-07-07T06:40:07.866659Z #User@Host: root[root] @ localhost [::1] Id:10 #Query_time: 133.866927 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 3871744 SET timestamp=1499409607; insert into test (id,name) (select uuid() id,name from test);
我们可以看到在 2017-07-07 日,有多个慢查询产生。单独抽取一组,如下
#Time: 2017-07-07T06:35:46.995201Z #User@Host: root[root] @ localhost [::1] Id:10 #Query_time: 12.522116 Lock_time: 0.000501 Rows_sent: 0 Rows_examined: 483968 use test; SET timestamp=1499409346; insert into test (id,name) (select uuid() id,name from test);
Query_time 表示的是耗时时间
下面是一些操作,这的主要操作就是一个 insert
这就是慢查询日志。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
zabbix实战--Php-fpm监控详解
参考视频教程: http://www.roncoo.com/course/view/fb3050a5b34b42f39ccad83ebebc89c1 龙果运维平台开源地址:https://github.com/roncoo/roncoo-cmdb Php-fpm和nginx一样内建了一个状态页,对于想了解php-fpm的状态以及监控php-fpm非常有帮助。下面我们先来了解一下详情也的情况: 一、打开php-fpm详情页面: Vim php-fpm.conf pm.status_path = /13/status 二、修改nginx配置文件,打开/13/status的监控页面: server { listen 80; server_name www.checkweb.com; location / { root /home/www/web/bbs.chekcwev.com; include fastcgi_params; fastcgi_pass unix:/tmp/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $doc...
- 下一篇
消息中间件选型分析——从Kafka与RabbitMQ的对比来看全局
一、前言 消息队列中间件(简称消息中间件)是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下提供应用解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等等功能,其作为分布式系统架构中的一个重要组件,有着举足轻重的地位。 目前开源的消息中间件可谓是琳琅满目,能让大家耳熟能详的就有很多,比如ActiveMQ、RabbitMQ、Kafka、RocketMQ、ZeroMQ等。不管选择其中的哪一款,都会有用的不趁手的地方,毕竟不是为你量身定制的。有些大厂在长期的使用过程中积累了一定的经验,其消息队列的使用场景也相对稳定固化,或者目前市面上的消息中间件无法满足自身需求,并且也具备足够的精力和人力而选择自研来为自己量身打造一款消息中间件。但是绝大多数公司还是不会选择重复造轮子,那么选择一款合适自己的消息中间件显得尤为重要。就算是前者,那么在自研出稳定且可靠的相关产品之前还是会经历这样一个选型过程。 在整体架构中引入消息中间件,势必要考虑很多因素,比如成本及收益问题,怎么样才能达到最优的性价比?虽然消息...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- MySQL8.0.19开启GTID主从同步CentOS8
- Hadoop3单机部署,实现最简伪集群
- CentOS8编译安装MySQL8.0.19
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长