慢查询1
一.什么是慢查询
指MYSQL记录所有执行超过long_query_time参数设定的时间阈值的SQL语句。慢查询日志就是记录这些SQL的日志
二.代码查询
Show status like ‘uptime’; 获取当前数据库运行的时间
Show status ‘com_Select’;
Show status like ‘connections’;
Set global long_query_time =1; 改变慢查询的时间 默认是10秒
Show variables like ‘long%’
Mysqld.exe --safe-mode --slow -query -log 以安全模式启动mysql服务
三.索引的分类的分类
1.通过Explain分析执行低效SQL的执行计划
2.通过show profilefe 分析SQL
慢查询2
Mysql 5.5 配置
创建一个文件夹 里边有个 log结尾的文档
右键文件夹 添加 -- 高级 -- 立即查找 -- exea....
在my.ini 下配置
log_slow_queries=ON
long_query_time=2
slow_query_log=ON
log_queries_not_using_indexes=ON
slow_query_log_file="D:/MysqlLog/slow.log"
Mysql 5.7 配置
查询当前mysql数据库是否开启了慢查询日志功能:
show VARIABLES like ‘%slow%’;
slow_query_log的值是ON,代表当前数据库已经开启了慢查询功能。
slow_query_log_file表示慢日志的路径。
或使用show variables like 'slow_query_log_file';命令也可以查看慢查询日志的路径
还可以查看超过多少秒算是慢查询:
show VARIABLES like 'long_query_time';
设置慢查询时间
set global long_query_time=4;
设置之后再次查询使用
show global variables like 'long_query_time';
查询有多少条慢查询
show global status like '%Slow_queries%';
查看慢查询日志的存储方式
show variables like ‘%log_output%’;
设置
set global log_output=‘TABLE’;
该系统变量指定未使用索引的查询也被记录到慢查询日志中(可选项)。
如果调优的话,建议开启这个选项。
另外,开启了这个参数,其实使用full index scan的SQL也会被记录到慢查询日志。
mysql> show variables like 'log_queries_not_using_indexes';
+-------------------------------+-------+
| Variable_name | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | OFF |
+-------------------------------+-------+
1 row in set (0.00 sec)
设置
mysql> set global log_queries_not_using_indexes=1;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'log_queries_not_using_indexes';
+-------------------------------+-------+
| Variable_name | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | ON |
+-------------------------------+-------+
1 row in set (0.00 sec)
查看 log_queries_not_using_indexes 是否为on
show variables like ‘log%’;
将 log_queries_not_using_indexes 设置为on
set global log_queries_not_using_indexes = on;
再次查看log_queries_not_using_indexes
show variables like ‘log%’;(查看是否开启)
2 设置慢查询的时间(sql运行时间超过设定,此sql将被记录到慢查询日志当中去)
查看long_query_time
show variables like ‘long_query_time’;
设置long_query_time(单位为秒)
set global long_query_time = 0.1;
打开新的会话,查看long_query_time
注意:打开新的会话窗口后在查看
3 查看慢查询日志所在位置,开启慢查询
show variables like ‘slow%’;
slow_query_log_file 表示慢查询日志存放的位置
slow_query_log 表示慢查询功能是否开启
开始慢查询日志
set global slow_query_log = on;