慢查询
显示慢查询开关是否打开
show variables like 'slow_query_log';
设置慢查询开关,0表示关闭,1表示打卡
set GLOBAL slow_query_log=1;
查询慢查询设置的时间和设置时间(默认是十秒钟,超过则为慢查询)
show variables like 'slow_query_time';
set GLOBAL slow_query_time=1;
查询日子存放的位置
show variables like '&slow_query_log_file%';
查询是否记录没有使用到索引的查询
show variables like '&slow_query_not_using_indexes%';
慢查询日子解读
语句从Time开始,到FROM 表名结束。
Time:表示具体查询语句的查询时间。
user@Host:表示用户。
Query_time:表示花费的时间。Lock_time:获得锁的时间。Rows_sent:得到结果的行数。Rows_enamined:扫描的条数。
timestamp:sql具体执行的时间戳。
Mysql分析过滤命令mysqldumpslow
mysqldumpslow -s(c,t,l,r,at)【s表示排序,c:次数,t:总时间,l:锁,r:结果次数,at:总时间/总次数】 10(表示前十个,自由设置) slow.log
执行计划
在SQL查询的前面加EXPLAIN关键字
id:select某张表就对应一个id.select_type:对应的查询类型。table:对应表。partitions:对应分区。type:单张表访问的方法。possible_keys:可能使用到的索引。key:实际使用的索引。key_len:实际使用索引的长度。ref:匹配对象。rows:行数。filtered:过滤的东西。extra:额外的其他内容