mysql慢查询操作实例分析【开启、测试、确认等】
本文实例讲述了mysql慢查询操作。分享给大家供大家参考,具体如下:
mysql有些sql会执行很慢,有可能造成服务器负载飙升
首先查询确定影响负载的是mysql,使用top命令,ps命令等
其次,进入MySQL,使用showfullprocesslist查询执行中的sql语句,看看问题,使用explain命令查看状态
最后找出sql语句杀死或者优化
centos7上面安装mariadb服务
yum-yinstallmariadb-servermariadb-devel
开启慢查询
more/etc/my.cnf.d/server.cnf
[mariadb] slow_query_log=ON slow_query_log_file=/usr/local/mysql/data/slow.log long_query_time=1
启动mariadb服务
systemctlstartmariadb
查询mysql的慢查询是否开启,以及多久的时间以上是慢查询
MariaDB[(none)]>showvariableslike'%slow_query%'; +---------------------+--------------------------------+ |Variable_name|Value| +---------------------+--------------------------------+ |slow_query_log|ON| |slow_query_log_file|/usr/local/mysql/data/slow.log| +---------------------+--------------------------------+ 2rowsinset(0.00sec) MariaDB[(none)]>showvariableslike'long_query_time'; +-----------------+----------+ |Variable_name|Value| +-----------------+----------+ |long_query_time|1.000000| +-----------------+----------+ 1rowinset(0.00sec)
#如果没用开启慢查询,可以在命令行开启 mysql>setglobalslow_query_log=1; QueryOK,0rowsaffected(0.00sec)
测试慢查询,以及查看日志
MariaDB[(none)]>selectsleep(2); +----------+ |sleep(2)| +----------+ |0| +----------+ 1rowinset(2.00sec)
[root@localhost~]#more/usr/local/mysql/data/slow.log /usr/libexec/mysqld,Version:5.5.60-MariaDB(MariaDBServer).startedwith: Tcpport:0Unixsocket:/var/lib/mysql/mysql.sock TimeIdCommandArgument #Time:18093023:51:07 #User@Host:root[root]@localhost[] #Thread_id:2Schema:QC_hit:No #Query_time:2.001017Lock_time:0.000000Rows_sent:1Rows_examined:0 SETtimestamp=1538322667; selectsleep(2);
确认慢查询
MariaDB[(none)]>showfullprocesslist;#查看state慢查询在进行 +----+------+-----------+------+---------+------+------------+-----------------------+----------+ |Id|User|Host|db|Command|Time|State|Info|Progress| +----+------+-----------+------+---------+------+------------+-----------------------+----------+ |3|root|localhost|NULL|Query|9|Usersleep|selectsleep(10)|0.000| |4|root|localhost|NULL|Query|0|NULL|showfullprocesslist|0.000| +----+------+-----------+------+---------+------+------------+-----------------------+----------+ 2rowsinset(0.00sec) MariaDB[(none)]>showfullprocesslist;#查看state慢查询已经结束,但是用户登陆了 +----+------+-----------+------+---------+------+-------+-----------------------+----------+ |Id|User|Host|db|Command|Time|State|Info|Progress| +----+------+-----------+------+---------+------+-------+-----------------------+----------+ |3|root|localhost|NULL|Sleep|1||NULL|0.000| |4|root|localhost|NULL|Query|0|NULL|showfullprocesslist|0.000| +----+------+-----------+------+---------+------+-------+-----------------------+----------+ 2rowsinset(0.00sec)
更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL查询技巧大全》、《MySQL常用函数大汇总》、《MySQL日志操作技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》及《MySQL数据库锁相关技巧汇总》
希望本文所述对大家MySQL数据库计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。