MYSQL的慢查询

通过查询SQL的执行频次,我们就能够知道当前数据库到底是增删改为主,还是查询为主。 那假如说是以查询为主,次数我们可以借助于慢查询日志。接下来,我们就来介绍一下MySQL中的慢查询日志。

慢查询日志

慢查询日志记录了所有执行时间超过指定参数( long_query_time ,单位:秒,默认 10 秒)的所有
SQL 语句的日志。

查看慢查询 

MySQL 的慢查询日志默认没有开启,我们可以查看一下系统变量 slow_query_log
show variables like 'slow_query_log';

 

配置慢查询 

如果要开启慢查询日志,需要在MySQL的配置文件(my.cnf)中的[mysqld]配置如下信息 

配置完毕之后,通过以下指令重新启动MySQL服务器进行查看

 测试

执行命令

select * from tb_sku;

执行时间超过2秒

查看日志 

那这样,通过慢查询日志,就可以定位出执行效率比较低的SQL,从而有针对性的进行优化。 

profile

show profiles 能够在做 SQL 优化时帮助我们了解时间都耗费到哪里去了。通过 have_profiling
参数,能够看到当前 MySQL 是否支持 profile操作。

查看

可以看到,当前 MySQL 是支持 profile 操作的,但是开关是关闭的。
SELECT @@have_profiling ;

打开配置 

可以通过 set 语句在 session/global级别开启 profiling
SET profiling = 1;

测试

接下来,我们所执行的 SQL 语句,都会被 MySQL 记录,并记录执行时间消耗到哪儿去
了。 我们直接执行如下的 SQL 语句
select * from tb_user;
select * from tb_user where id = 1;
select * from tb_user where name = '白起';
select count(*) from tb_sku;

查看耗时

-- 查看每一条SQL的耗时基本情况
show profiles;
-- 查看指定query_id的SQL语句各个阶段的耗时情况
show profile for query query_id;
-- 查看指定query_id的SQL语句CPU的使用情况
show profile cpu for query query_id;

show profiles;--查看每一条SQL的耗时基本情况

show profile for query 3; --查看指定query_id的SQL语句各个阶段的耗时情况

show profile cpu for query 3; --查看指定query_id的SQL语句CPU的使用情况

 explain

EXPLAIN 命令获取 MySQL 如何执行 SELECT 语句的信息,包括在 SELECT 语句执行过程中表如何连接和连接的顺序

语法

-- 直接在select语句之前加上关键字 explain / desc
EXPLAIN SELECT 字段列表 FROM 表名 WHERE 条件 ;

使用

explain select * from tb_user where name = '白起';

字段含义 

字段
含义
id
select 查询的序列号,表示查询中执行 select 子句或者是操作表的顺序 (id相同,执行顺序从上到下; id 不同,值越大,越先执行 )
select_type
表示 SELECT 的类型,常见的取值有 SIMPLE (简单表,即不使用表连接或者子查询)、PRIMARY (主查询,即外层的查询)、UNION( UNION 中的第二个或者后面的查询语句)、
SUBQUERY SELECT/WHERE 之后包含了子查询)等
type
表示连接类型,性能由好到差的连接类型为 NULL system const 、eq_ref、 ref range index all
possible_key
显示可能应用在这张表上的索引,一个或多个
key
实际使用的索引,如果为 NULL ,则没有使用索引。
key_len
表示索引中使用的字节数, 该值为索引字段最大可能长度,并非实际使用长度,在不损失精确性的前提下, 长度越短越好 。
rows
MySQL 认为必须要执行查询的行数,在 innodb 引擎的表中,是一个估计值,可能并不总是准确的。
filtered
表示返回结果的行数占需读取行数的百分比, filtered 的值越大越好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/129004.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VirtualBox(内有Centos 7 示例安装)

1常见概念以及软件安装 1.1 虚拟化技术: 虚拟化技术指的是将计算机的各种硬件资源加以抽象、转换、分割,最后组合 起来的技术。其目的和作用主要是打破硬件资源不可分的情况,方便程序员自 己集成所需资源。 1.2 Virtual Box 其是虚拟化技术作…

图解三重积分的对称性

1.图解三重积分的对称性 关于三重积分详见:三重积分(Triple Integral) 三重积分的对称性原理与二重积分类似,关于二重积分的对称性详见:图解二重积分的对称性 被积函数 f ( x , y , z ) f(x,y,z) f(x,y,z)可以有不同的物理意义,…

SSMP整合综合案例【SpringBoot的基本增删改查】

一、基本页面 主页面 添加 删除 分页 条件查询 实体类开发————使用Lombok快速制作实体类 Dao开发————整合MyBatisPlus,制作数据层测试 Service开发————基于MyBatisPlus进行增量开发,制作业务层测试类 Controller开发————基于Restful…

【Two Stream network (Tsn)】(二) 阅读笔记

贡献 将深度神经网络应用于视频动作识别的难点,是如何同时利用好静止图像上的 appearance information以及物体之间的运动信息motion information。本文主要有三点贡献: 1.提出了一种融合时间流和空间流的双流网络; 2.证明了直接在光流上训…

【Spring面试】五、Bean扩展、JavaConfig、@Import

文章目录 Q1、如何在Spring创建完所有的Bean之后做扩展?Q2、Spring容器启动时,为什么先加载BeanFactoryPostProcess?Q3、Bean的生产顺序是由什么决定的?Q4、Spring有哪几种配置方式Q5、JavaConfig是如何替代spring.xml的?Q6、Com…

SpringMVC基础入门及工作流程---全方面详细介绍

一,SpringMVC概念 Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简…

赋能工业物联网 | 数据驱动,加速智能制造

行业背景 工业物联网场景下,随着智能设备及物联网技术的广泛应用,数据是最重要的资源之一,企业需要对各种机器、设备和传感器产生的时序数据进行采集、存储与分析。 因此,何为行之有效的数据库解决方案?企业普遍更为…

MySQL--数据库基础

数据库分类 数据库大体可以分为 关系型数据库 和 非关系型数据库 常用数据类型 数值类型: 分为整型和浮点型: 字符串类型 日期类型

【PTA】浙江大学计算机与软件学院2019年考研复试上机自测

个人学习记录,代码难免不尽人意。 呃,今天做了做19年的复试上机题,死在hash表上了,后面详细解释。心态要好,心态要好 7-1 Conway’s Conjecture John Horton Conway, a British mathematician active in recreational…

SpringMVCJReble的使用文件的上传下载

目录 前言 一、JReble的使用 1.IDea内安装插件 2.激活 3.离线使用 使用JRebel的优势 二、文件上传与下载 1 .导入pom依赖 2.配置文件上传解析器 3.数据表 4.配置文件 5.前端jsp页面 6.controller层 7.测试结果 前言 当涉及到Web应用程序的开发时&…

AI人工智能Mojo语言:AI的新编程语言

推荐:使用 NSDT场景编辑器 快速搭建3D应用场景 Mojo的主要功能包括: 类似Python的语法和动态类型使Python开发人员易于学习Mojo,因为Python是现代AI / ML开发背后的主要编程语言。使用Mojo,您可以导入和使用任何Python库&#xf…

设计模式之外观模式

文章目录 影院管理项目传统方式解决影院管理传统方式解决影院管理问题分析外观模式基本介绍外观模式原理类图外观模式解决影院管理传统方式解决影院管理说明外观模式应用实例 外观模式的注意事项和细节 影院管理项目 组建一个家庭影院: DVD 播放器、投影仪、自动屏…

FPGA通信—千兆网(UDP)软件设计

一、PHY引脚功能描述 引脚功能描述1CLK25 CLK125:内部PLL生成的125MHz参考时钟,如MAC未使用125MHe时钟,则此引脚应保持浮动, 2 4 63 GND 接地3REG OUT开关压器,1.05V输出 5 6 8 9 11 12 14 15 MDI[0] MDI[0]- MDI[1] MDI[1…

Redis Redis介绍、安装 - Redis客户端

目录 redis是什么,他的应用场景是什么? Redis的一些主要特点和应用场景: redis的官方网站:Redis redis是键值型数据库:(也就是key-value模式)(跟python的字典很像) …

Web server failed to start. Port 8080 was already in use.之解决方法

问题: Web server failed to start. Port 8080 was already in use,这句错误描述意思是当前程序的端口号8080被占用了,需要将占用该端口的程序停止掉才行;错误如图所示: 解决方法: 按住winr,输入…

【大虾送书第九期】速学Linux:系统应用从入门到精通

目录 🍭写在前面 🍭为什么学习Linux系统 🍭Linux系统的应用领域 🍬1.Linux在服务器的应用 🍬2.嵌入式Linux的应用 🍬3.桌面Linux的应用 🍭Linux的版本选择 &a…

深入浅出PyTorch函数torch.rand与torch.randn

torch.rand 和 torch.randn 都是PyTorch中用于生成随机张量的函数,但它们生成随机数的方式有所不同。 一、torch.rand torch.rand 生成在区间 [0, 1) 内均匀分布的随机数。 size 参数是一个表示所需张量形状的元组或整数。可以生成任何形状的随机张量。 二、torch.…

C++的运算符重载介绍

所谓重载,就是赋予新的含义。函数重载(Function Overloading)可以让一个函数名有多种功能,在不同情况下进行不同的操作。运算符重载(Operator Overloading)也是一个道理,同一个运算符可以有不同的功能。 实际上,我们已经在不知不觉中使用了运算符重载。例如,+号可以对…

javaee springMVC model的使用

项目结构图 pom依赖 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org…

2020年12月 C/C++(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C++编程(1~8级)全部真题・点这里 第1题:数组指定部分逆序重放 将一个数组中的前k项按逆序重新存放。例如,将数组8,6,5,4,1前3项逆序重放得到5,6,8,4,1。 时间限制:1000 内存限制:65536 输入 输入为两行: 第一行两个整数,以空格分隔,分别为数组元素的个数n(1 < n…