MySQL性能优化总结之二

一,获取需要优化的SQL,除了用我上一篇博文提到show processlist方式,还可以开启慢查询日志的方式。

A. mysql之linux版开启慢查询日志:

在配置文件 my.cnf 中的 [mysqld] 一行下边添加两个参数:

其中,slow_query_log = 1 表示开启慢查询;

slow_query_log_file 表示慢查询日志存放的位置;

long_query_time = 2 表示查询 >=2 秒才记录日志;

log_queries_not_using_indexes = 1 记录没有使用索引的 SQL 语句。

注意:slow_query_log_file 的路径不能随便写,否则 MySQL 服务器可能没有权限将日志文件写到指定的目录中。建议直接复制上文的路径。

修改保存文件后,重启 MySQL 服务。在 /var/lib/mysql/ 目录下会创建 slow-query.log 日志文件。连接 MySQL 服务端执行如下命令可以查看配置情况。

  1. show variables like 'slow_query%';
  2. show variables like 'long_query_time';

测试慢查询日志:

打开慢查询日志文件:

 

我们可以看到刚才执行了 2 秒的 SQL 语句被记录下来了。

虽然在慢查询日志中记录查询慢的 SQL 信息,但是日志记录的内容密集且不易查阅。因此,我们需要通过工具将 SQL 筛选出来。

MySQL 提供 mysqldumpslow 工具对日志进行分析。我们可以使用 mysqldumpslow --help 查看命令相关用法。

常用参数如下:

案例:

 

 B. mysql之windows版开启慢查询日志:

1、CMD命令行进入MySQL数据库

2、登录mysql数据库

3、show variables like 'slow_query%';show variables like 'long_query_time';

// show variables like '%quer%';  ---- 这个更好

 slow_query_log      | OFF  慢查询未开启

4、将 slow_query_log 全局变量设置为“ON”状态 ,临时生效,mysql重启后就会失效

set global slow_query_log='ON';

5、设置慢查询日志存放的位置

set global slow_query_log_file='D:\\kpdata\\DataBase\\Data\\mysql.log';

 

6、找到mysql的安装目录,找到my.ini文件夹在[mysqld]处加入以下代码开启慢查询,永久有效。

#开启慢查询
slow_query_log = ON
#log-slow-queries:代表MYSQL慢查询的日志存储目录,此目录文件一定要有写权限;
log-slow-queries="C:/Program Files (x86)/MySQL/MySQL Server 5.0/log/mysql-slow.log"
#最长执行时间 (查询的最长时间,超过了这个时间则记录到日志中) .
long_query_time = 1
#没有使用到索引的查询也将被记录在日志中
log-queries-not-using-indexes = ON

7、重启服务,查看慢查询开启状态。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值