这里有新鲜出炉的 Mysql 教程,程序狗速度看过来!
MySQL 是一个开放源码的小型关联式数据库管理系统,开发者为瑞典 MySQL AB 公司。MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。
本篇文章主要介绍了详解 MySql 的慢查询分析及开启慢查询日志,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
我最近也在研究 MySQL 性能优化的路上,那么今天也算个学习笔记吧!
在小伙伴们开发的项目中,对于 MySQL 排查问题找出性能瓶颈来说,最容易发现并解决的问题就是 MYSQL 的慢查询以及没有得用索引的查询。
接下来教大家如何开启 MySQL5.0 版本以上的慢查询日志记录;
OK,一起开始找出 mysql 中执行起来不 "爽" 的 SQL 语句吧。
首先,我们通过 mysql 命令进入 mysql 命令行中:
- [root@yunuo_vm ~]# mysql -u root -p
- Enter password:
- Welcome to the MySQL monitor. Commands end with ; or \g.
- Your MySQL connection id is 4977
- Server version: 5.6.17 Source distribution
- Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
- Oracle is a registered trademark of Oracle Corporation and/or its
- affiliates. Other names may be trademarks of their respective
- owners.
- Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
- mysql>
ps: 这里的 MySQL 版本是 5.6.17
OK, 进入到控制台了, 接下来,我们查看下 MySQL 默认配置中多少秒才算慢查询
- mysql> show variables like 'long%';
- +-----------------+-----------+
- | Variable_name | Value |
- +-----------------+-----------+
- | long_query_time | 10.000000 |
- +-----------------+-----------+
- 1 row in set (0.00 sec)
如上表显示,系统默认的慢查询时间上限是 10 秒,下面我们来把它改成 1 秒 (大家也可以根据自己实际情况来定);
- mysql> set long_query_time=1; 注: 我设置了1, 也就是执行时间超过1秒的都算慢查询。
- Query OK, 0 rows affected (0.00 sec)
哦了!最后我们来瞅瞅 MySQL 开启慢查询日志记录没有;
- mysql> show variables like 'slow%';
- +---------------------+---------------+
- | Variable_name | Value |
- +---------------------+---------------+
- | slow_launch_time | 2 |
- | slow_query_log | OFF |
- | slow_query_log_file | /tmp/slow.log |
- +---------------------+---------------+
ps:
slow_query_log // 是否打开日志记录
slow_query_log_file // 日志存放位置
MySQL 默认没有开启慢查询,下面我们来开启下:
- mysql> set global slow_query_log='ON';
- Query OK, 0 rows affected (0.00 sec)
至此大功告成!!!是不是很简单?
来源: http://www.phperz.com/article/17/0814/339370.html