关键字:mysql查询优化(explain)
相关网址:http://isky000.com/database/mysql-explain-detail
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 |
+—-+————-+——-+——-+——————-+———+———+——-+——+——-+
这些东西。
其中 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 性能优化 ExplainMySQL 性能优化 ExplainMySQL 性能优化 ExplainMySQL 性能优化 ExplainMySQL 性能优化 ExplainMySQL 性能优化 ExplainMySQL 性能优化 Explain
MySQL EXPLAIN 是 MySQL 查询优化工具之一。EXPLAIN 可以帮助数据库管理员快速地了解查询执行计划,从而优化查询语句。EXPLAIN 可以提供查询执行计划的详细信息,包括查询类型、查询成本、查询时间等。 6.3.2 MySQL...
理解 MySQL 的 Query Optimizer 如何工作是基础,掌握基本的优化思路和原则是关键,同时合理利用 EXPLAIN 和 PROFILING 工具以及索引技术,可以显著提升查询性能。此外,对于 ORDER BY、GROUP BY 和 DISTINCT 这些...
* 优化 SQL 语句:使用 EXPLAIN 语句来分析 SQL 语句的执行计划,优化查询语句。 * 使用存储过程:使用存储过程可以将频繁查询的操作封装起来,提高查询效率。 * 优化数据库结构:优化数据库结构,例如,使用合适的...
这个部分可能涵盖了如何理解优化器的决策过程,以及如何通过EXPLAIN命令来查看和理解执行计划,以便于开发者调整查询语句,使其更符合优化器的预期。 其次,"MySQL查询优化技术系列讲座之使用索引"讨论了索引在查询...
### 从Mysql-EXPLAIN探寻数据库查询优化 在数据库管理与优化领域,MySQL的`EXPLAIN`命令是一项非常强大的工具,它可以帮助我们深入了解MySQL如何执行SQL查询,并据此进行优化,提高查询性能。本文将围绕MySQL中的`...
- **监控和分析**:定期检查EXPLAIN计划,分析索引的使用情况,使用MySQL的性能分析工具如pt-query-digest来识别慢查询并优化。 - **InnoDB存储引擎的索引优化**:InnoDB支持行级锁定,其主键索引是聚簇索引,其他...
MySQL数据库优化SQL篇PPT课件.pptx 本PPT课件主要讲述了MySQL数据库优化的重要知识点,特别是SQL优化方面的内容。从执行计划、SELECT语句、IN和EXIST语句、LIMIT语句、RAND函数、Order by、Group by、Distinct和...
MySQL性能优化是一个涵盖广泛的主题,涉及多个层面,包括SQL语句优化、索引优化、数据库表结构优化、系统级配置优化以及服务器硬件优化。以下是对这些方面进行详细说明: 1. **SQL语句优化** - **慢查询日志**:...
通过 `EXPLAIN` 的分析结果,我们可以针对性地对查询语句进行优化,从而使查询优化器更好地工作。 #### 二、MySQL 查询优化器的工作原理 MySQL 查询优化器的主要目标之一是尽可能利用索引,并通过最严格的索引来...
- **EXTENDED形式**:`EXPLAIN EXTENDED SELECT ...`,此形式会显示出经过MySQL优化器优化后的查询语句,可以通过`SHOW WARNINGS`查看。 - **PARTITIONS形式**:`EXPLAIN PARTITIONS SELECT ...`,适用于分区表,...
这些笔记涵盖了MySQL优化的主要方面,包括查询优化、SQL编写技巧、数据库设计、存储引擎选择、服务器配置、硬件升级、定期维护以及使用各种工具进行监控和调优。通过这些方法,你可以有效地提升MySQL数据库的运行...
在本篇文章中,我们将深入探讨"mysql+explain实例分析"这一主题,以理解如何利用`EXPLAIN`命令来优化MySQL查询性能。 `EXPLAIN`是MySQL提供的一种功能,用于在不实际执行查询的情况下分析SQL语句的执行计划。它帮助...
在本篇中,我们将聚焦于三个MySQL优化工具:`SHOW`命令、慢查询日志和`EXPLAIN`与`PROFILING`。 一、SHOW命令 `SHOW`命令是MySQL中的一个非常实用的工具,用于获取数据库系统的信息。它可以帮助我们查看数据库的...
通过MySQL的`EXPLAIN`命令,我们可以查看查询的执行计划,了解数据的读取顺序、索引使用情况以及表的连接方式,帮助我们定位潜在的性能问题。 调优原则主要包括以下几点: 1. **减少数据访问**:尽量避免全表扫描,...
Explain是MySQL提供的一种强大的查询分析工具,它可以帮助我们理解SQL查询执行的细节,从而找出可能的性能瓶颈。下面将详细介绍Explain的使用,以及如何通过它来优化MySQL性能。 一、Explain概述 Explain是MySQL中...
使用 EXPLAIN 关键字是另一个 MySQL 优化技巧,可以让你了解 MySQL 正在进行什么样的查询操作,这可以帮助你发现瓶颈的所在,并显示出查询或表结构在哪里出了问题。EXPLAIN 查询的结果,可以告诉你那些索引正在被...