SQL优化作为DBA日常主要工作内容,分析SQL的执行计划,是必须要掌握的知识点。执行计划体现了SQL在数据库中的执行方式,SQL语句按照什么样的方式执行,是由优化器决定的。达梦数据库也是一样,SQL语句是由优化器设计执行方式的。达梦数据库提供了2个命令来进行分析SQL的执行计划,分别为explain和explain for,下面我们分别进行介绍。1、使用EXPLAIN分析执行计划达梦数据库提供e
转载
2023-06-19 17:24:58
292阅读
SQL优化准则禁用select *
使用select count(*) 统计行数
尽量少运算
尽量避免全表扫描,如果可以,在过滤列建立索引
尽量避免在where子句对字段进行null判断
尽量避免在where子句使用!= 或者<>
尽量避免在where子句使用or连接
尽量避免对字段进行表达式计算
尽量避免对字段进行函数操作
尽量避免使用不是复合索引的前缀列进行过滤连接
尽量少排序,如
转载
2023-08-21 10:25:39
90阅读
实际项目开发中,由于我们不知道实际查询的时候数据库里发生了什么事情,数据库软件是怎样扫描表、怎样使用索引的,因此,我们能感知到的就只有sql语句运行的时间,在数据规模不大时,查询是瞬间的,因此,在写sql语句的时候就很少考虑到性能的问题。但是当数据规模增大,如千万、亿的时候,我们运行同样的sql语句时却发现迟迟没有结果,这个时候才知道数据规模已经限制了我们查询的速度。所以,查询优化和索引也就显得很
执行计划能告诉我们什么? 当我们的系统上线后数据库的记录不断增加,之前写的一些SQL语句或者一些ORM操作效率变得非常低。我们不得不考虑SQL优化,SQL优化大概是这样一个流程:1.定位执行效率低的SQL语句(定位),2.分析为什么这段SQL执行的效率比较低(分析),3.最后根据第二步分析的结构采取优化措施(解决)。而EXPLAIN命令的作用就是帮助我们分析SQL的执行情况,属于第二步。
转载
2023-08-09 22:25:23
85阅读
读懂MySQL执行计划
前言 在之前的面试过程中,问到执行计划,有很多童鞋不知道是什么?甚至将执行计划与执行时间认为是同一个概念。今天我们就一起来了解一下执行计划到底是什么?有什么用途?
执行计划是什么? 执行计划,简单的来说,是SQL在数据库中执行时的表现情况,通常用于SQL性能分析,优化等场景。在MySQL中使用
转载
2023-11-04 21:26:52
130阅读
目录1 执行计划是什么2 在mysql中查看执行计划2.1 准备数据2.2 查看执行计划3 详细说明执行计划结果各个字段的含义3.1 id3.2 select_type3.3 table3.4 type3.5 possible_keys3.6 key3.7 key_len3.8 ref3.9 rows4.0 Extra1 执行计划是什么
一、创建索引需要关注什么?1、关注基数列唯一键的数量;比如性别,该列只有男女之分,所以性别列基数是2;2、关注选择性列唯一键与行数的比值,这个比值范围在0~1之前,值越小越好; 其实,选择性列唯一键与行数的比值,只要列值区分度越高,这个比值就会相对越小3、where like关键字的前面使用%会全表扫描,不走索引 4、禁止使用select,建议使用select <字段…&
MySQL的核心是存储引擎。 一、查询过程 1、客户端向MySQL服务器发送查询请求。 2、检查查询缓存,缓存命中直接返回数据,否则进入下一阶段。 3、服务器进行SQL解析、预处理、由优化器生成对应的执行计划。 SQL解析: 软解析:在缓存中找到了执行计划。 硬解析:缓存中没有找到对应的执行计划,则由优化器生成执行计划。 4、根据执行
转载
2023-07-30 09:27:06
106阅读
一、explain简介explain是MySQL一款查看SQL语句的执行计划的命令,使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。帮助分析你的查询语句或是表结构的性能瓶颈。官方解释: 该EXPLAIN语句提供有关MySQL如何执行语句的信息。 EXPLAIN为SELECT语句中使用的每个表返回一行信息 。它按照MySQL在处理语句时读取它们
1、EXPLAIN介绍[root@VM_0_5_centos ~]# mysqldumpslow -a /var/log/mariadb/slow_query_log.txt
Reading mysql slow query log from /var/log/mariadb/slow_query_log.txt
Count: 4 Time=21.46s (85s) Lock=0.00s (
转载
2023-08-01 16:59:29
100阅读
MySQL源码解析之执行计划MySQL执行计划介绍MySQL执行计划代码概览MySQL执行计划总结一、MySQL执行计划介绍在MySQL中,执行计划的实现是基于JOIN和QEP_TAB这两个对象。其中JOIN类表示一个查询语句块的优化和执行,每个select查询语句(即Query_block对象)在处理的时候,都会被当做JOIN对象,其定义在sql/sql_optimizer.h。QEP_TAB是
SQL优化准则禁用select *使用select count(*) 统计行数尽量少运算尽量避免全表扫描,如果可以,在过滤列建立索引尽量避免在where子句对字段进行null判断尽量避免在where子句使用!= 或者<>尽量避免在where子句使用or连接尽量避免对字段进行表达式计算尽量避免对字段进行函数操作尽量避免使用不是复合索引的前缀列进行过滤连接尽量少排序,如果可以,建立索引尽量
转载
2023-10-20 20:31:19
30阅读
MYSQL执行计划顺序原则上是:在所有组中,id值越大,优先级越高,越先执行,id如果相同,可以认为是一组,从上往下顺序执行做执行计划之前,要了解下表统计信息情况:mysql.innodb_table_stats、innodb_index_stats 上述执行计划执行顺序 derived2(1)-->FLIGHTS(1)-->NULL(2) 输出字段说明:
id
目录1. 概述2. 执行计划使用2.1.执行计划详解2.1.1. 执行计划-ID 2.1.2.执行计划select_type2.1.3.执行计划-table2.1.4.执行计划-type 2.1.5.执行计划possible_key和key2.1.6.执行计划key_len2.1.7.执行计划ref2.1.8.执行计划rows2.1.9.执行计划Extra1. 概述在平时的开发
转载
2023-08-11 15:56:50
48阅读
? 在Oracle performance tuning guide中,对执行计划顺序的描述是最右最上最先执行,然后父步骤执行,也就是最右边的步骤最先执行,如果同等级,那么最上边的最先执行,然后执行其父步骤(文档原文:The execution order in EXPLAIN PLAN output begins with? 在Oracle performance tuning guide中,对
转载
2023-10-07 19:51:41
83阅读
执行计划执行计划是什么执行计划,简单的来说,是SQL在数据库中执行时的表现情况,通常用于SQL性能分析,优化等场景。为什么要有执行计划当我们的系统上线后数据库的记录不断增加,之前写的一些SQL语句或者一些ORM操作效率变得非常低。我们不得不考虑SQL优化。SQL优化大概是这样一个流程:定位执行效率低的SQL语句(定位);分析为什么这段SQL执行的效率比较低(分析);最后根据第二步分析的结构采取优化
转载
2023-07-28 15:16:27
282阅读
介绍 本文介绍了执行计划的不同类型的操作,我们不会讨论应该使用或不使用哪个操作,因为本文只讨论操作的定义。如果您是一个执行计划的初学者,那么请阅读上一篇关于SQL执行计划基本概念篇。 现在,当我们知道了执行计划的类型以及如何获得执行计划的统计信息时,理解执行计划和统计信息的每一个单独输出的含义是非常重要的,这样我们才能更好地查询并提高性能。让我们来理解执行计划的操作。 下面是SQL执行计
转载
2023-09-23 16:58:00
333阅读
在MySQL中使用explain查询SQL的执行计划1、什么是MySQL执行计划要对执行计划有个比较好的理解,需要先对MySQL的基础结构及查询基本原理有简单的了解。MySQL本身的功能架构分为三个部分,分别是 应用层、逻辑层、物理层,不只是MySQL ,其他大多数数据库产品都是按这种架构来进行划分的。应用层,主要负责与客户端进行交互,建立链接,记住链接状态,返回数据,响应请求,这一层是和客户端打
转载
2023-10-12 19:52:08
107阅读
1. 什么是执行计划使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。2. 执行计划的作用表的读取顺序数据读取操作的操作类型哪些索引可以使用哪些索引被实际使用表之间的引用每张表有多少行被优化器查询3. 执行计划详解通过EXPLAIN关键分析的结果由以下列组成,接下来挨个分析每一
1、 首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条记录,那查询优化器会选择“索引查找”方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用 “全表扫描”方式。 可见,执行计划并不是固定的,它是“个性化的”。产生一个