028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

MySQL中有哪些慢查询语句

本篇文章给大家分享的是有关MySQL中有哪些慢查询语句,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的准格尔网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

通过SHOW FULL PROCESSLIST查看问题

SHOW FULL PROCESSLIST相当于select * from  information_schema.processlist可以列出正在运行的连接线程,

MySQL中有哪些慢查询语句
processlist

说明:

慢查询日志

慢查询日志是MySQL用于记录响应时间超过设置阈值(long_query_time)的SQL语句,默认情况下未开启慢查询日志,需要手动配置。

下面我们要记住几个常用的属性:

我们可以通过show variables like ‘%关键字%’的方式查询我们设置的属性值

MySQL中有哪些慢查询语句
slow

我们有两种方式设置我们的属性,一种是set global 属性=值的方式(重启失效),另一种是配置文件(重启生效)

命令方式:

set global slow_query_log=1; set global long_query_time=1;  set global slow_query_log_file='mysql-slow.log'

配置文件方式:

slow_query_log = 'ON' slow_query_log_file = D:/Tools/mysql-8.0.16/slow.log long_query_time = 1 log-queries-not-using-indexes

pt-qurey-digest分析慢查询语句

percona-toolkit包含了很多实用强大的mysql工具包,pt-qurey-digest只是其中一个用于分析慢查询日志是工具。需要去官网下载,使用方法也很简单:

./pt-query-digest slow2.log >> slow2.txt

即可得出一个分析结果:

# Query 9: 0.00 QPS, 0.00x concurrency, ID 0xF914D8CC2938CE6CAA13F8E57DF04B2F at byte 499246 # This item is included in the report because it matches --limit.# Scores: V/M = 0.22 # Time range: 2019-07-08T03:56:12 to 2019-07-12T00:46:28 # Attribute    pct   total     min     max     avg     95%  stddev  median # ============ === ======= ======= ======= ======= ======= ======= =======# Count          8      69 # Exec time      1    147s      1s      3s      2s      3s   685ms      2s # Lock time      0   140ms     2ms    22ms     2ms     3ms     2ms     2ms # Rows sent      0       0       0       0       0       0       0       0 # Rows examine   0  23.96M 225.33k 482.77k 355.65k 462.39k  81.66k 345.04k # Query size     2  17.72k     263     263     263     263       0     263 # String:# Databases    xxxx# Hosts        xx.xxx.xxx.xxx# Users        root# Query_time distribution#   1us #  10us # 100us #   1ms #  10ms # 100ms #    1s  ################################################################ #  10s+ # Tables#    SHOW TABLE STATUS FROM `xxxx` LIKE 'xxxxx_track_exec_channel'\G #    SHOW CREATE TABLE `xxxx`.`xxxxxxxx_exec_channel`\G #    SHOW TABLE STATUS FROM `xxx` LIKE 'xxxxx_TRACK_ASSIGN'\G #    SHOW CREATE TABLE `xxxx`.`xxxxx_EFFECTIVE_TRACK_ASSIGN`\G #    SHOW TABLE STATUS FROM `xxx` LIKE 'xxxx_task_exec'\G #    SHOW CREATE TABLE `xxxx`.`xxxxx_task_exec`\G UPDATExxxxxx_effective_track_exec_channel a SET EXEC_CHANNEL_CODE=(SELECT GROUP_CONCAT(DISTINCT(channel_id)) FROM xxxxxx_EFFECTIVE_TRACK_ASSIGN WHERE status in (1,2,4) AND id IN (SELECT assgin_id FROM xxxxxx_task_exec WHERE task_id=a.task_id))\G

explain分析SQL语句

上面几点大概的介绍到了几种获取慢查询SQL语句的方式,现在,我们就需要借助explain来分析查找SQL语句慢的原因。explain使用也很简单,直接在SELECT|UPDATE等语句前加上EXPLAIN即可

MySQL中有哪些慢查询语句
explain

id

表的执行顺序,复制的sql语句往往会分为很多步,序号越大越先执行,id相同执行顺序从上往下

select_type

数据读取操作的操作类型:

table

数据来源于那张表,关联等复杂查询时会用临时虚拟表

type

检索数据的方式

possible_keys

显示可能使用的索引

Key

实际使用的索引

key_len

索引的长度,一般来说,长度越短越好

ref

列与索引的比较,表示上述表的连接匹配条件,即哪些列或常量被用于查找索引列上的值

rows

估算查找的结果记录条数

Extra

SQL查询的详细信息

以上就是MySQL中有哪些慢查询语句,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


当前名称:MySQL中有哪些慢查询语句
文章链接:http://www.tsicrk.com/article/ghgjog.html

其他资讯

让你的专属顾问为你服务

2.2500s