一、my.cnf配置性能调优
1. 分加入下面条配置在局域网络内不解析计算机名
skip-name-resolve
skip-grant-tables
2. 加入下面配置文件将成慢日志查询记录
log-slow-queries=/data/mysql/log/mysql_slow.log
long_query_time=10
3.重启动mysql server
[root@uat001 log]# service mysqld restart
不重启mysql时是不会记录日志的
二、慢日志在mysql中开启
首先查看log_output参数,确认日志信息输出到操作系统文件还是数据库的表中:
mysql> show variables like 'log_output';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output | FILE |
+---------------+-------+
1 row in set (0.01 sec)
通过上面的结果可以发现,log_output的值为“FILE”,证明是输出到日志文件,
如果值为“TABLE”则将日志信息输出到默认“mysql”数据库中的相应日志表中(具体为:mysql.slow_log),
该表的默认引擎为CSV。
开启慢查询日志:
set global slow_query_log=on;
设置慢查询的阀值为4秒,超过4秒的查询都将记录到慢查询日志中:
set global long_query_time=4;
也可以设置得更低,例如:
set global long_query_time=5;
设置慢查询日志的名称和存储位置:
set global slow_query_log_file="/data/mysql/log/mysql_slow.log";
运行一个超过5秒的查询:
select * from ipos_lsxhd;
查询出现慢查询次数的累计值(值由0变为1):
select * from ipos_lsxhd
show global status like 'Slow_queries';
打开生成的mysql_slow_query.log文件,发现新增了如下信息:
#
[root@uat001 log]# cat mysql_slow.log
/usr/local/mysql/bin/mysqld, Version: 5.5.23-log (Source distribution). started with:
Tcp port: 3306 Unix socket: /tmp/mysql.sock
Time Id Command Argument
# Time: 150720 12:07:54
# User@Host: root[root] @ [10.2.3.66]
# Query_time: 5.047617 Lock_time: 0.211879 Rows_sent: 138260 Rows_examined: 138260
use bsipos14911;
SET timestamp=1437365274;
select * from ipos_lsxhd;
其中:
“Time: ”为执行这条慢查询sql语句的日期和时间。
“Query_time: ”为这条慢查询sql语句的执行时间(大约执行了13秒)。