`
lzj0470
  • 浏览: 1273562 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

mysql explain 笔记整理

阅读更多
explain是用来分析sql语句,帮助优化的一个命令。

explain的语法如下:

explain [extended] select … from … where …

如果使用了extended,那么在执行完explain语句后,可以使用show warnings语句查询相应的优化信息。

比如我们执行
 select uid from user where uname=’scofield’ order by uid  
执行结果会有

+—-+————-+——-+——-+——————-+———+———+——-+——+——-+
| id | select_type | table | type  | possible_keys     | key     | key_len | ref   | rows | Extra |
+—-+————-+——-+——-+——————-+———+———+——-+——+——-+

这些东西。

id
select查询的序列号

select_type
select查询的类型,主要是区别普通查询和联合查询、子查询之类的复杂查询。

其中 table 表示是哪个表的数据。

type比较重要。表示链接的类型。链接类型由好到坏的,依次是   
system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL
一般情况,至少要达到 range 级别,最好是 ref 级别。否则可能会有性能问题。

possible_keys 是指可以应用到该表的索引,如果为NULL则没有。

key 是指用到的索引。

key_len 是索引的长度,在不影响查询精度的情况下,值越小越好。

ref 是指索引的那一列被使用了。一般会是个常数。

rows 是指有多少行。

extra 是指额外的信息。也是比较重要的。如果值为 distinct ,说明mysql 找到了域行联合匹配的行,就不再查找了。

如果值为 not exits  :  mysql优化了 left join ,一旦找到了 left join 匹配的行,便不再进行搜索了。

如果值为 rang checked for each :  没有找到理想的索引。

如果为 using filesort ,则需要改进sql了。这说明 mysql执行 需要 文件排序。这是比较影响效率的。

如果为  using  temporary , 这是使用了 临时表。 这种情况也比较影响效率,sql需要改进。或者从应用层进行改进。

如果为 where used 说明使用了where语句。如果 type为 all 或者 index ,一般会出现这样的结果。这样的问题,一般是查询需要改进。

在一般稍大的系统中,基本尽可能的减少 join ,子查询 等等。mysql就使用最简单的查询,这样效率最高。至于 join 等,可以放在应用层去解决。

分享到:
评论

相关推荐

    MySQL explain 笔记整理

    ### MySQL EXPLAIN 笔记整理 #### 一、EXPLAIN 命令简介 `EXPLAIN` 是 MySQL 提供的一个非常有用的工具,用于展示查询执行计划。通过它,我们可以了解到 SQL 查询是如何被执行的,这对于优化 SQL 语句、提高查询...

    mysql优化笔记+资料

    以下是一份详细的MySQL优化笔记,涵盖了多个方面: 一、查询优化 1. 使用索引:为经常用于搜索的列创建索引可以显著加快查询速度。B树和哈希索引是最常见的类型,适用于不同的查询场景。 2. 避免全表扫描:尽量使用...

    一千行 MySQL 学习笔记.pdf

    ### MySQL学习笔记知识点详解 #### 一、MySQL服务管理 **1. 启动MySQL服务** 在Windows环境中,可以通过以下命令启动MySQL服务: ```sql net start mysql ``` **2. 创建Windows服务** 若要手动创建一个...

    MySQL进阶学习-笔记整理

    1.2、Explain工具 1.3、索引下推 1.4、Trace工具 1.5、索引优化最佳实践 2、事务隔离 2.1、事务隔离级别及琐机制 2.2、MVCC多版本并发控制机制 3、Mysql日志 3.1、总体架构 3.2、INNODB日志 4、全局优化 4.1、全局...

    1000 行 MySQL 学习笔记,史上最全珍藏版!.docx

    本篇学习笔记涵盖了从基础操作到高级特性的全面内容,旨在帮助读者从初级到高级提升MySQL技能,成为一名数据库管理员。 首先,我们从MySQL的启动和管理开始。在Windows环境下,可以使用`net start mysql`命令来启动...

    MYSQL笔记.txt

    根据提供的文件信息,我们可以整理出一系列关于MySQL的重要知识点与操作命令。下面将详细解析这些内容,帮助理解MySQL数据库管理系统的基本操作、表结构管理以及数据管理等核心功能。 ### MySQL基础知识 **MySQL**...

    Mysql学习笔记(整理了大部分的SQL语法).zip

    这份"Mysql学习笔记"包含了对SQL语法的详细整理,对于初学者和进阶者都是宝贵的资源。下面,我们将深入探讨MySQL的一些核心概念和SQL语法。 1. **SQL基础**:SQL(Structured Query Language)是用于管理关系数据库...

    mysql 学习笔记,可用于面试和复习

    这份“MySQL学习笔记”是为准备求职面试和复习基础知识而精心整理的,涵盖了从基础概念到高级特性的全面内容。 一、MySQL基础 1. 数据库与表:数据库是组织数据的集合,表则是数据库中的数据结构,包含列和行。在...

    MySQL 工作学习笔记.zip

    这份“MySQL工作学习笔记”压缩包文件可能是由一位经验丰富的数据库管理员或开发者整理,包含了关于MySQL的深入理解和实践技巧。尽管没有具体的标签来指导,但我们可以从“MySQL工作学习笔记”这个标题推测,内容...

    Mysql优化 笔记

    本笔记将深入探讨MySQL优化的关键知识点,包括但不限于索引优化、查询语句优化、存储引擎选择、数据库架构设计以及内存配置等方面。 首先,索引是MySQL数据库中提升查询速度的关键。正确地为经常用于查询的列创建...

    数据库+mysql+mysql优化索引笔记+学习、数据库查询优化基本知识

    本文主要记录了笔者在学习mysql过程中,整理的笔记,试用于1-3年的开发。在学习的过程中做的记录,可以根据实际情况结合理论,来完成数据库查询优化。

    mysql笔记.txt

    最近整理的笔记 SQL执行计划 explain select customer_id,title,content from product_comment where audit_status=1 and product_id=199 limit 0,5; 查询计划的限制 无法展示存储过程,触发器,UDF对查询的...

    性能优化Mysql篇.zip

    利用EXPLAIN分析查询计划,理解MySQL如何执行查询,以便调整SQL语句。使用JOIN时,确保连接条件包含索引,并尽量减少子查询的使用。 3. **存储引擎选择**:InnoDB是事务安全的存储引擎,适合需要ACID特性的应用。...

    传智播客 韩忠康 视频教程 Mysql 中的PPT,和自己整理的课堂笔记

    通过PPT和课堂笔记,学习者可以系统地掌握MySQL的基础知识以及高级特性。 1. **MySQL基础知识** - 数据库与表的概念:理解数据库的逻辑结构,包括数据库、表、字段、记录等基本元素。 - SQL语言:学习SQL...

    对于Frank的mysql课程的学习笔记.zip

    这份压缩包“对于Frank的mysql课程的学习笔记.zip”包含了丰富的学习资源,很可能是学员Kwan1117整理的个人笔记,虽然没有具体的标签,但我们可以根据常见的MySQL主题来探讨一些关键知识点。 1. **基础概念**:...

    复习整理,深度学习Mysql,数据库系统实现等内容的笔记.zip

    【标题】深度学习MySQL与数据库系统实现笔记 在IT领域,数据库系统是不可或缺的一部分,而MySQL作为最广泛使用的开源关系型数据库管理系统之一,其在数据存储、查询和管理中的重要性不言而喻。深度学习则是一种人工...

    mysql数据库学习过程中的一些笔记.zip

    在学习MySQL的过程中,笔记是一个非常有效的辅助工具,可以帮助我们整理思路,加深对概念的理解。以下是一些关于MySQL数据库的关键知识点: 1. **SQL语言基础**: SQL(Structured Query Language)是用于管理关系...

    MySQL性能优化教学视频资料.zip

    使用EXPLAIN分析查询执行计划,了解数据读取顺序和使用的索引,有助于找出潜在的性能瓶颈。 2. **索引策略**:索引是提升查询速度的关键。合理创建主键、唯一索引、全文索引和普通索引,可以显著提高查询效率。注意...

    Mysql高级思维导图.zip

    笔记部分可能包含作者在学习过程中整理的重点、难点解析和实战经验,对深化理解非常有帮助。 综上所述,这个"Mysql高级思维导图.zip"文件将为想要提升MySQL技能的用户提供宝贵的资源,无论你是初学者还是有一定经验...

    mysql代码-MySQL of learning test notes book

    这份"mysql代码-MySQL of learning test notes book"很可能是某位开发者在学习MySQL的过程中整理的笔记和测试代码集合,对于初学者或者想要提升MySQL技能的人来说是一份宝贵的资源。 1. **SQL基础** SQL...

Global site tag (gtag.js) - Google Analytics