MySQL的慢查询是什么

介绍

这篇文章主要讲解了“MySQL的慢查询是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL的慢查询是什么”吧!

MySQL慢查询分析
,
在我们做系统性能调优的时候,数据库的慢查询语句的优化是必不可少的,特别是电子商务类型的重度MySQL应用类型。
下面我们一起来看看怎么做好MySQL的慢查询分析吧。
1,开启MySQL的慢查询日志
,www.2cto.com,
首先配在my . cnf中所做置里面加入慢查询配置,然后建立慢查询的日志文件,并把用户和组修改为mysql,最后重启mysqld。
,
vim/etc/my .cnf
#在配置文件的(mysqld)下面加入以下几行
log-slow-queries=/var/log/mysql-slow . log
long_query_time=0.01 #表示查询时间超过10 ms的都认为是慢查询
log-queries-not-using-indexes #表示没有使用索引的查询也记录日志
,
触摸/var/log/mysql-slow . log
乔恩mysql。mysql/var/log/mysql-slow . log
/etc/init .d mysqld重启
接着测试一下慢查询是否生效,可以访问一下myadmin或者跑一条选择睡眠(1),然后再猫一下/var/log/运行效率低下。日志,如果看到有记录就表示设置成功了。不过,生成慢查询日志只是忠实的记录了每一条慢查询,对于我们做分析并不方便。
,
2,安装mysqlsla慢查询分析工具
wget http://hackmysql。com/脚本/mysqlsla-2 .03点。tar . gz
焦油xzf mysqlsla - 2.03。tar . gz
cd mysqlsla - 2.03
,,www.2cto.com
perl Makefile。PL

让安装
#安装信息
#安装/usr/local/share/perl5/mysqlsla.点
#安装/usr/local/share/man/man3/mysqlsla.下午3点
#安装/usr/local/bin/mysqlsla
#附加安装信息/usr/lib/perl5/perllocal.pod
,
文件/usr/local/bin/mysqlsla
#其实是一个perl脚本
#/usr/地方/bin/mysqlsla:/usr/bin/perl - w脚本文本执行
3,慢查询统计
,
#统计出现次数最多的前10条慢查询
mysqlsla lt缓慢/var/log/mysql-slow . log -十大c_sum比;top10_count_sum。日志
#统计执行时间的总和前10条慢查询
mysqlsla lt缓慢/var/log/mysql-slow . log -十大t_sum比;top10_time_sum.log
#统计平均执行时间最长的前10条慢查询(常用)
mysqlsla lt缓慢/var/log/mysql-slow . log -十大t_avg比;top10_time_avg.log
打开其中一个日志统计文件,你会看的到:
,www.2cto.com,
报告慢日志:/var/log/mysql-slow。日志被分析的慢查询日志文件,
40查询总,12独特40条查询;除了重复的,有12条查询,
按,只要t_avg&,按平均查询时间排序,
总数:4 s,锁0,派出236行,行了8.63 k
______________________________________________________________________ 001 ___
数:1(2.50%)这条SQL出现了1次,占总SQL数的2.5%
时间:588.994总女士执行时间总和,588.994毫秒avg平均每次查询的时间,588.994最女士短时间为588.994毫秒最大最长时间(13.78%)
锁定时间(s): 91,微;总,91,微;s avg, 91,微;91年代,微;s马克斯(2.34%)
行发送:30 avg, 30 - 30马克斯(12.71%)
行检查:899 avg, 899年到899年马克斯(10.41%)
数据库:
用户:
coreseektest@localhost: 100.00%(1)的查询,100.00%(40)的所有用户
,
查询文摘:
设置时间戳=N;SELECT *从ecm_goods goods_name像,只要S&,ORDER BY ecm_goods。brand_id ASC限制N, N。
,
查询示例:
设置时间戳=1341467496;
SELECT *从‘ecm_goods goods_name像,而冰箱,,按“ecm_goods”。brand_id的ASC
0,限制30;
______________________________________________________________________ 002 ___
数:2(5.00%)这条SQL出现了2次,占SQL总数的5%
时间:57.38总女士执行时间总和,28.69毫秒avg平均每次查询的时间,27.503最女士短时间29.877马克斯女士最长时间(1.34%)
锁定时间(s): 134,微;总,67,微;s avg, 64,微;70年代,微;s马克斯(3.44%)
行发送:3 avg, 3 - 3马克斯(2.54%)
行检查:3 avg, 3 - 3马克斯(0.07%)
数据库:
用户:,www.2cto.com,
coreseektest@localhost: 100.00%(2)的查询,100.00% (40)usersQuery文摘:
设置时间戳=N;从文档限制选择* N, N;
查询示例:
设置时间戳=1341399487;
SELECT * FROM‘文件’限制0,30;
,
,白马王子其他省略,白马王子
,
如果需要做更复杂的统计,可以参考官方文档:http://hackmysql.com/mysqlsla_guide
如果希望每隔一段时间,比如一天,出一次慢查询统计的话,可以写一个shell脚本,然后放到/etc/crontab里面。这样的话,就可以定期做查询优化。

MySQL的慢查询是什么