开启Mysql慢查询来优化mysql
开启Mysql慢查询来优化mysql
优化sql语句是优化数据库的一个很重要的方面,那么怎么发现那些耗时耗资源的sql语句呢,开启Mysql慢查询!
1.查看是否开启慢查询,默认情况下是关闭的。你的mysql最好在5.1版本以上
mysql> show variables like "%slow%";
- +---------------------+---------------------------------------------------------
- ------------------+
- |Variable_name|Value
- |
- +---------------------+---------------------------------------------------------
- ------------------+
- | log_slow_queries | OFF
- |
- | slow_launch_time |2
- |
- | slow_query_log | OFF
- |
- | slow_query_log_file | D:\software\wamp\wamp\bin\mysql\mysql5.5.20\data\WIN-23J
- S4C29BV4-slow.log |
- +---------------------+---------------------------------------------------------
- ------------------+
2.命令行开启mysql慢查询:
- mysql>setglobal slow_query_log=on;
- Query OK,0 rows affected (0.09 sec)
或者修改mysql配置文件开启mysql慢查询:(记得重启mysql)
Windows下开启MySQL慢查询
MySQL在Windows系统中的配置文件一般是是my.ini找到[mysqld]下面加上:
log-slow-queries = F:\MySQL\log\mysqlslowquery.log
long_query_time = 2
Linux下启用MySQL慢查询
MySQL在Windows系统中的配置文件一般是是my.cnf找到[mysqld]下面加上:
log-slow-queries=/data/mysqldata/slowquery.log
long_query_time=2
3.分析mysql慢查询日志:
mysql慢查询日志类似这样的:
- /usr/local/mysql/libexec/mysqld,Version:5.1.26-rc-log (Source distribution). started with:
- Tcp port:3306Unix socket:/tmp/mysql.sock
- TimeIdCommandArgument
- # Time: 100814 13:28:30
- # User@Host: root[root] @ localhost []
- # Query_time: 10.096500 Lock_time: 0.045791 Rows_sent: 1 Rows_examined: 2374192
- SET timestamp=1281763710;
- select count(distinct ad_code)as x from ad_visit_history where ad_code in(select ad_code from ad_list where media_id=15);
- # Time: 100814 13:37:02
- # User@Host: root[root] @ localhost []
- # Query_time: 10.394134 Lock_time: 0.000091 Rows_sent: 1 Rows_examined: 2374192
- SET timestamp=1281764222;
- select count(distinct ad_code)as x from ad_visit_history where ad_code in(select ad_code from ad_list where media_id=15);
- # Time: 100814 13:37:16
- # User@Host: root[root] @ localhost []
- # Query_time: 4.608920 Lock_time: 0.000078 Rows_sent: 1 Rows_examined: 1260544
- SET timestamp=1281764236;
- select count(*)as cou from ad_visit_history where ad_code in(select ad_code from ad_list where id=41) order by id desc;
看日志可以看出它记录了mysql慢查询语句的执行时间、锁定时间等等。
(1)用mysql自带的mysql自带的慢查询分析工具mysqldumpslow
(2)第三方分析工具mysqlsla
安装:
- wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz
- tar zvxf mysqlsla-2.03.tar.gz
- cd mysqlsla-2.03
- perl Makefile.PL
- make
- make install
- mysqlsla /data/mysqldata/slow.log
使用:
- [root@phpddt.com mysqlsla-2.03]# mysqlsla /var/lib/mysql/slow-queries.log
- Auto-detected logs as slow logs
- Reportfor slow logs:/var/lib/mysql/slow-queries.log
- 160 queries total,17 unique
- Sortedby't_sum'
- GrandTotals:Time1 s,Lock0 s,Rows sent 3.79k,RowsExamined380.47k
- ______________________________________________________________________ 001 ___
- Count:1(0.62%)
- Time:1 s total,1 s avg,1 s to 1 s max (100.00%)
- LockTime(s):0 total,0 avg,0 to 0 max (0.00%)
- Rows sent :10 avg,10 to 10 max (0.26%)
- Rows examined :10.46k avg,10.46k to 10.46k max (2.75%)
- Database:
- Users:
- root@localhost :100.00%(1) of query,100.00%(160) of all users
- Queryabstract:
- SET timestamp=N; SELECT *,SUM(hits) AS SUM FROM typecho_ranks INNER JOIN typecho_contents ON typecho_contents.cid = typecho_ranks.cid WHERE (month(date)= month(now())) GROUP BY typecho_ranks.cid ORDER BY SUM(hits) DESC LIMIT N;
- Query sample:
- SET timestamp=1381248477;
- SELECT *,sum(`hits`)as`sum` FROM typecho_ranks INNER JOIN typecho_contents ON typecho_contents.`cid`= typecho_ranks.`cid` WHERE (MONTH(`date`)= MONTH(now())) GROUP BY typecho_ranks.`cid` ORDER BY sum(`hits`) DESC LIMIT 10;
- ______________________________________________________________________ 002 ___
- Count:1(0.62%)
- Time:0 total,0 avg,0 to 0 max (0.00%)
- LockTime(s):0 total,0 avg,0 to 0 max (0.00%)
- Rows sent :25 avg,25 to 25 max (0.66%)
- Rows examined :25 avg,25 to 25 max (0.01%)
- Database: stblog
- Users:
- root@localhost :100.00%(1) of query,100.00%(160) of all users
- Queryabstract:
- SELECT * FROM (settings);
- Query sample:
- SELECT *
- FROM (`settings`);
分析格式如下:
Rows examined, 扫描的行数量.
Query sample, sql语句
转载于:https://www.cnblogs.com/zsmynl/p/3538611.html
开启Mysql慢查询来优化mysql相关推荐
- mysql数据库优化课程---16、mysql慢查询和优化表空间
mysql数据库优化课程---16.mysql慢查询和优化表空间 一.总结 一句话总结: a.慢查询的话找到存储慢查询的那个日志文件 b.优化表空间的话可以用optimize table sales; ...
- mysql中查询缓存优化以及慢查询
1. 概述 开启Mysql的查询缓存,当执行完全相同的SQL语句的时候,服务器就会直接从缓存中读取结果,当数据被修改,之前的缓存会失效,修改比较频繁的表不适合做查询缓存 2. 操作流程 1.客户端发送 ...
- MySQL模糊查询性能优化
一.背景 我们经常在数据库中使用 LIKE 操作符来完成对数据的模糊搜索,LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式. 如果需要查找客户表中所有姓氏是"孙"的数据 ...
- 资源放送丨《MySQL的查询与优化》PPT视频
点击上方"蓝字" 关注我们,享更多干货! 前段时间,墨天轮邀请资深专家 杨明翰 老师分享了<MySQL的查询与优化>,在这里我们将课件PPT和实况录像分享出来,供大家参 ...
- 今晚直播丨MySQL的查询与优化
经典技术分享:MySQL的查询与优化- 03.04 本次分享满满干货,从如何获取慢查询入手,介绍MySQL数据如何存储和访问,以及MySQL基于规则和成本的优化.通过explain分析执行计划,讲解对 ...
- 明晚直播丨MySQL的查询与优化
经典技术分享:MySQL的查询与优化- 03.04 本次分享满满干货,从如何获取慢查询入手,介绍MySQL数据如何存储和访问,以及MySQL基于规则和成本的优化.通过explain分析执行计划,讲解对 ...
- Mysql 关联查询的优化 及 子查询优化
Mysql 关联查询的优化 left join ①EXPLAIN SELECT * FROM class LEFT JOIN book ON class.card = book.card; ②如何优化 ...
- 高性能Mysql之查询性能优化
高性能Mysql之查询性能优化 为什么查询速度会慢 慢查询基础:优化数据访问 重构查询的方式 MySQL查询优化器的局限性 优化特定类型的查询 即使我们设计了一个最优的库表结构,建好了最好的索引,如果 ...
- MySQL的查询性能优化——《深究MySQL》
更新中....... #写在前面 mysql查询缓慢的原因有哪些? 1.查询语句是否请求了不必要的多余数据 2. 总结以上原因之后,优化数据库性能,就需从以下几个方面着手: 1. 说明:下面的知识为零 ...
最新文章
- R语言ggplot2可视化左对齐两个可视化图像的画图区域(边缘)实战
- linux查看虚拟内存和cpu占用率
- java 调用word插件_java一键生成word操作,比poi简单
- java applet js_jsp嵌入java-applet,实现js调用web服务器程序
- 第三次学JAVA再学不好就吃翔(part76)--Collection类
- python中的递归函数是什么_讲解Python中的递归函数
- redis 哨兵_Redis哨兵机制的原理介绍
- java调用日期控件_JAVA基础应用:日期时间选择控件(代码)
- oracle 对象的审计,初识!聊聊ORACLE的审计功能
- mysql查询不超过19_mysql45讲 19.为什么我只查一行的语句,也执行这么慢?
- python 通过ip获取城市_Python根据用户IP判断所属城市 !
- [Java] 蓝桥杯ALGO-125 算法训练 王、后传说
- BZOJ 1571: [Usaco2009 Open]滑雪课Ski
- 概率论——分布函数的性质
- linux服务网卡速率查看,linux 下查看网卡工作速率
- 阿里云--短信服务--java实现代码
- 手把手教你如何将chatgpt接入微信公众号
- CSS——高度塌陷以及解决方法
- 基于Vue项目的回到顶部插件
- 商用智能显示屏在自动售检票系统(AFC)中的应用
热门文章
- python第三方库numpy-Python第三方库之Numpy库
- python语言入门pdf-Python语言入门.pdf
- python考证什么时候报名-2020年计算机二级考试时间最新安排
- python培训班一般多少钱-报个python培训班多少钱
- python可以做什么工作好-学完Python我们可以做什么工作?
- python读取txt文件并写入excel-Python读取txt内容写入xls格式excel中的方法
- python源代码不需要编译成什么-编译 Python 源代码
- python用于什么-python主要应用在哪些领域?
- python基础指令-python的一些基本命令
- python下载的文件放在哪里的-python实现下载文件的三种方法