使用mysqldumpslow 命令可以解析mysql慢查询日志,mysqldumpslow的参数如下:
-s ,是按照任何方式排序,c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数
来排序,ac/at/al/ar 表示相应的倒叙
-t,是top n的意思,即为返回前面多少条 的数据
-g,后面可以写一个正则匹配模式,大小写不敏感 例如
、sql执行时间最长的前20调sql
mysqldumpslow -s t -t -g 'select' /opt/data/slowquery_2016050921.log
、得到按照时间排序的前10条里面含有含有左链接的查询语句
mysqldumpalow -s t -t -g 'left join' /opt/data/slowquery_2016050921.log 、explain、desc,(mysql命令)查看sql执行效率,帮我们分析select语句
explain:该命令是查看查询优化器如何决定查询的主要方法,这个功能有局限性,只是
一个近似结果,有时他是一个很好的近似,有时可能相差甚远。但它的输出可以获取
最准确的信息。 eg1:
explain select *from students where id in (,); explain中的列:
id:只是一个编号,id越大优先级越高 select type:有以下几种值
simple :最简单的select,没有union和子查询
primary:最外面的select,在有子查询的语句最外面的select就是primary
derived: 表示包含from子句中的select,mysql递归执行并将结果放到一个临时
表中,服务器内部称其为派生表, type列:是指mysql的访问类型,也就是查找表中的行
下面是最重要的访问方法,依次从最差到最优
all<index<range<ref<eq_ref<const,system<null
all:扫描整张表
index:只有索引树被扫描跟all一样是读全表不过是从索引中取
range;范围扫描,是一个有限制的索引扫描
ref;非唯一值索引扫描,返回匹配某一直的所有行
Eq_ref:最多只返回一条符合条件的记录
const/system:将某些 访问转化成一个常量;
null:能在优化阶段分解查询语句
key_len:索引使用的字节数
key:有没有使用索引
ref:显示索引的那一列被使用了
rows:表示查询数据的请求行数
Extra:
•这一列包含的是不适合在其他列显示的额外信息。
•一些比较重要的如下:
using index”此值表示MySQL将使用覆盖索引,以避免访问表。
using where” 表示查询使用了where条件
using temporary” 这意味着MySQL在对查询结果排序时会使用一个临时表。
using filesort这意味着MySQL会对结果使用一个外部的索引排序,而不是按索引顺序从表里读取行。
局限性:
、explain不会考虑触发器、存储过程或者函数对查询的影响
、explain不会考虑缓存对查询结果的影响
、不会考虑mysql执行查询所有的特定优化
、是基于统计信息的估算,并不是精确值
、mysql .6之前只支持 select explain MySQL profile-分析SQL执行带来的开销
在MySQL数据库中,可以通过配置profiling参数来启用SQL剖析。该参数开启后,后续执行的SQL语句都将记录其资源开销,诸如IO,上下文切换,CPU,Memory等等。
•开启 profile:
•set @@profiling=;
•查看profile是否开启
•select @@profiling;
•1为开启,0为关闭
•开启profile后,执行的sql都会被profile记录
•show profiles;可以看到当前已经被记录的sql
•show profile for query n;#n为show profile中的query_id
•show profile cpu ,block io for query ;查看sql执行的时间、cpu和io

mysql慢查询解析-linux命令的更多相关文章

  1. MYSQL数据库常用的LINUX命令

    此为我工作中常用MYSQL数据库命令 LINUX系统中启动 / 重启MYSQL服务:service mysql start  /  service mysql restart(重启服务) LINUX系 ...

  2. Python解析Linux命令行

    写了个python脚本在linux需要传入参数使用,python参数传入有几个方法, 先用了Python中命令行参数的最传统的方法sys.argv linux cmd ~& python ma ...

  3. linux中安装JDK linux中安装Tomcat linux中安装Mysql 及故障解析 linux系统安装redis

    Linux 安装JDK 配置完环境变量后无法使用 java -version 无法打开 通过下面语句 将32位文件与当前系统64位兼容 (有待补充32位查法)sudo yum install glib ...

  4. LINUX命令LS -AL 解析

    LINUX命令LS -AL 解析 linux命令ls -al 解析 ls是“list”的意思,与早期dos的命令dir功能类似.参数-al则表示列出所有的文件,包括隐藏文件,就是文件前面第一个字符为. ...

  5. 常见linux命令释义(第八天)—— Bash Shell 的操作环境

    换了新公司,公司的领导很不错.自己感受比较多的地方是,自己的工作效率明显比以前高了.以前会对频繁变动的需求十分不耐烦,现在接到需求后会仔细的思考,进行整体构建.即使以后需求有变动,也能够比较轻易的在原 ...

  6. Linux命令行抓包及包解析工具tshark(wireshark)使用实例解析

    在Linux下,当我们需要抓取网络数据包分析时,通常是使用tcpdump抓取网络raw数据包存到一个文件,然后下载到本地使用wireshark界面网络分析工具进行网络包分析. 最近才发现,原来wire ...

  7. Linux 命令之 Navicat 连接 Linux 下的Mysql数据库

    2016年12月7日18:44:06 -====------------------------  GRANT ALL PRIVILEGES ON *.* TO 'itoffice'@'%' IDEN ...

  8. Linux 实例如何开启 MySQL 慢查询功能

    运行 MySQL 时,查询速度比较慢的语句对数据库的影响非常大,这些慢语句大多是写的不够合理或者大数据环境下多表并发查询造成的.MySQL 自带慢查询功能,能记录查询时间超过参数 long_query ...

  9. (转)Linux命令:使用dig,nslookup命令解析域名

    Linux命令:使用dig命令解析域名 Linux下解析域名除了使用nslookup之外,开可以使用dig命令来解析域名,dig命令可以得到更多的域名信息. dig的全称是 (domain infor ...

随机推荐

  1. 虚拟机的linux(CentOS)系统安装

    一.安装虚拟机:VirtualBox  1.软件下载:https://www.virtualbox.org/  2.一路点击下一步完成安装 二.安装linux:CentOS6.8  1.官方网站:ht ...

  2. WindowsForms使用Telerik Reporting

    新建一个WindowsForms窗体项目 然后拖动ReportViewer这个控件到WindowsForms的窗体中 如上图所示,用来呈现报表的控件,这个控件可以打印报表,转换报表这类的功能 接下来我 ...

  3. ThinkPHP无法打开或点击不了Trace的问题

    首先先确认是否打开了Trace配置项,ThinkPHP3.*为'SHOW_PAGE_TRACE'=>true,ThinkPHP5.*为'app_trace'=>true. 如果已经确认开启 ...

  4. 网络层ddos与应用层ddos区别

    以去银行办业务举例: 网络层ddos是让去往银行的道路交通变得拥堵,无法使正真要去银行的人到达:常利用协议为网络层的,如tcp(利用三次握手的响应等待及电脑tcp连接数限制)等 应用层ddos则是在到 ...

  5. VB Open 函数详解 打开、关闭、读、写文件

    (一)打开和关闭文件      1.顺序文件     打开顺序文件,我们可以使用Open语句.它的格式如下:Open pathname For [Input |Output |Append] As [ ...

  6. ivew 封装删除 对话框

    封装的组件 <template> <Modal footer-hide :closable="false" title="删除确认" v-mo ...

  7. bzoj4165 矩阵 堆维护多路归并

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4165 题解 大概多路归并是最很重要的知识点了吧,近几年考察也挺多的(虽然都是作为签到题的). ...

  8. nacos 动态刷新@ConfigurationProperties

    使用@ConfigurationProperties 可以替换@value   @ConfigurationProperties @Value 注解功能 可以批量注入配置文件中的属性 只能一个个指定注 ...

  9. Java使用wait() notify()方法操作共享资源详解_java - JAVA

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 Java多个线程共享资源: 1)wait().notify()和notifyAll()方法是本地方法,并且为final方 ...

  10. CSS3——制作正在加载页面loading...

    今天做了好多小东西,还挺开心的~ <!DOCTYPE html> <html lang="en"> <head> <meta charse ...