美文网首页
性能测试-MySQL慢sql

性能测试-MySQL慢sql

作者: C1R2 | 来源:发表于2020-12-04 21:57 被阅读0次
一、简介

开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。

二、参数说明

slow_query_log 慢查询开启状态
slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)
long_query_time 查询超过多少秒才记录

三、设置步骤

1.查看慢查询相关参数

mysql> show variables like 'slow_query%';
+---------------------------+----------------------------------+
| Variable_name             | Value                            |
+---------------------------+----------------------------------+
| slow_query_log            | OFF                              |
| slow_query_log_file       | /mysql/data/localhost-slow.log   |
+---------------------------+----------------------------------+

mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+

2.设置方法
方法一:全局变量设置
将 slow_query_log 全局变量设置为“ON”状态

mysql> set global slow_query_log='ON'; 

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

mysql> set global slow_query_log_file='/usr/local/mysql/data/slow.log';

查询超过1秒就记录

mysql> set global long_query_time=1;

方法二:配置文件设置
修改配置文件my.cnf,在[mysqld]下的下方加入

[mysqld]
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/data/slow.log
long_query_time = 1

3.重启MySQL服务
service mysqld restart

4.查看设置后的参数

mysql> show variables like 'slow_query%';
+---------------------+--------------------------------+
| Variable_name       | Value                          |
+---------------------+--------------------------------+
| slow_query_log      | ON                             |
| slow_query_log_file | /usr/local/mysql/data/slow.log |
+---------------------+--------------------------------+

mysql> show variables like 'long_query_time';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 1.000000 |
+-----------------+----------+

四、测试

1.执行一条慢查询SQL语句

mysql> select sleep(2);

2.查看是否生成慢查询日志

ls /usr/local/mysql/data/slow.log

如果日志存在,MySQL开启慢查询设置成功!

优化建议:
1、使用预编译(应该尽量使用参数化SQL,)
2、使用表别名(连接多个表时,请使用表的别名并把别名前缀于每个列名上)
3、多条SQL语句压缩到一句SQL中(每次要建立网络连接、进行权限校验、进行SQL语句的查询优化、发送执行结果,这个过程是非常耗时的)
4、关于in和exists(根据两表大小关系)
A > B : select * from A where id in (select id from B)
A < B : select * from A where exists(select 1 from B.id = A.id)
5、union all 替换 union(union all不会有重复的记录)


参考链接
https://www.cnblogs.com/zpbk1991/p/9223137.html
https://blog.csdn.net/weixin_43935927/article/details/109472365

相关文章

  • 性能测试-MySQL慢sql

    一、简介 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据...

  • mysql查询优化 - 慢查询

    mysql查询速度优化思路 开启慢查询日志 查看导致阻塞的sql语句 重现场景, 单独测试 mysql 慢查询分析...

  • mysql慢查询日志

    慢查询日志 MySQL 慢查询日志是排查问题 SQL 语句,以及检查当前 MySQL 性能的一个重要功能,执行时间...

  • mysql开启慢查询sql日志

    MySQL 慢查询日志是排查问题 SQL 语句,以及检查当前 MySQL 性能的一个重要功能。 开启状态:查看是否...

  • 看完这篇文章,99%的人都会使用Mysql Explain工具

    Explain工具介绍 EXPLAIN是MySQl必不可少的一个分析工具,主要用来测试sql语句的性能及对sql语...

  • 慢SQL定位分析

    一、慢sql成为系统性能瓶颈 业务系统慢,肯定是体现在响应时间上,所以在性能测试中,如果发现慢我们就从响应时间上进...

  • Swoole-Mysql连接池

    用Swoole4 打造高并发的PHP协程Mysql连接池 使用Swoole测试MySQL在特定SQL下的并发性能 ...

  • 各种技术学习之路

    MySQL:《SQL学习指南》、《高性能MySQL》、《高可用MySQL》、《SQL反模式》 参考资料:[MySQ...

  • MySQL性能优化(慢查询)

    1 MySQL性能优化之慢查询 1.1 性能优化的思路 首先需要使用慢查询功能,去获取所有查询时间比较长的SQL语...

  • 基准测试(一)

    mysql性能测试。 一、mysqlslap mysqlslap是mysql自带的性能测试工具。 mysqlsla...

网友评论

      本文标题:性能测试-MySQL慢sql

      本文链接:https://www.haomeiwen.com/subject/xhswbktx.html