`
王之子
  • 浏览: 105601 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

MySQL 语句性能分析

 
阅读更多

MySQL 执行计划就是在一条 SELECT 语句前放上关键词 EXPLAIN ,MySQL 解释它将如何处理 SELECT,提供有关表如何联合和以什么次序联合的信息。借助于 EXPLAIN 可以知道:

  • 什么时候必须为表加入索引,以得到一个使用索引找到记录的更快的 SELECT 方法。
  • 优化器是否以一个最佳次序联结表



 各属性的含义如下:

 

id:查询的序列号

select_type:查询的类型,主要包括普通查询、联合查询和子查询。

table: 所访问数据库中表的名称。

type:联合查询使用的类型。

possible_keys:指出 MySQL 能使用哪个索引在该表中找到该行。如果这个值是空的,则表示没有相关的索引。这时要提高性能,可通过检验 WHERE 子句,看是否引用了某些字段,或者检查字段是否适合索引。

key:显示MySQL 实际决定使用的键。如果没有索引被选择,键是 NULL。

key_len:显示MySQL 决定使用的键长度。如果键是 NULL,长度就是NULL。注意,这个值可以反映出一个多重主键里 MySQL 实际使用了哪部分。

ref:显示哪个字段或常数与 key 一起被使用。

rows:这个值表示 MySQL 要遍历多少数据才能找到所需的结果集,其在 InnoDB 上是不准确的。

Extra:如果是 Only index,意味着信息只能用索引树中的信息检索,这比扫描整个表要快;如果是 where used,则表示使用了 where 限制,但是用索引还不够;如果是 impossible where,则表示通过收集到的统计信息判断出不可能存在的结果。除此之外,Extra 还有下面一些可能值:Using filesort  表示包含 orderby 且无法使用索引进行排序操作时,不得不使用相应的排序算法实现。using temporary 使用临时表,常见于 orderby 和 group by。select tables optimized way 使用聚合函数,并且 MySQL 进行了快速定位。通常是 MAX,MIN,COUNT(*) 等函数。

 

需要说明的是,type 显示的访问类型是较重要的指标,结果值从好到坏依次是:system(系统表)、const(读常量)、eq_ref(最多一条匹配结果,通常是通过主键访问)、ref(被驱动表索引使用)、fulltext(全文索引检索)、ref_or_null(带空值的索引查询)、index_merge(合并索引结果集)、unique_subquery(子查询中返回的字段是唯一组合或索引)、index_subquery(子查询返回的是索引,但非主键)、range(索引范围扫描)、index(全索引扫描)、ALL(全表扫描)。

 

一般来说,保证查询至少达到 range 级,最好能达到 ref 级。ALL 为全表扫描,是最坏的情况,这种情况往往是没用上索引。

  • 大小: 9.4 KB
分享到:
评论

相关推荐

    Mysql语句性能分析-EXPLAIN

    分析你的查询语句或是表结构的性能瓶颈。 如下面SQL语句: EXPLAIN select * from system_area where status = 1 获得下面的结果: select_type SIMPLE:简单表,不使用表连接或子查询 PRIMARY:主查询,即外层的...

    MySQL性能分析show profiles详解(csdn)————程序.pdf

    MySQL性能分析show profiles详解(csdn)————程序

    mysql的explain分析sql语句性能(慢查询和加没加索引)

    mysql的explain分析sql语句性能(慢查询和加没加索引)

    Effective MySQL之SQL语句最优化

    《Effective MySQL之SQL语句最优化》是由MySQL专家Ronald Bradford撰著,书 中提供了很多可以用于改进数据库和应用程序性能的最佳实践技巧,并对这些技巧 做了详细的解释。本书希望能够通过一步步详细介绍SQL优化...

    MySQL语句优化的原则

    合理的索引设计要建立在对各种查询的分析和预测上。一般来说:  a.有大量重复值、且经常有范围查询( > ,,> =,)和order by、group by发生的列,可考虑建立群集索引;  b.经常同时存取多列,且每列都含有重复值...

    Effective MySQL之SQL语句最优化(高清)

    《Effective MySQL之SQL语句最优化》提供了很多可以用于改进数据库和应用程序性能的最佳实践技巧,并对这些技巧做了详细的解释。《Effective MySQL之SQL语句最优化》希望能够通过一步步详细介绍SQL优化的方法,帮助...

    MySQL性能调优与架构设计.mobi

    如 MySQL Schema 设计的技巧,Query 语句的性能优化方式方法及MySQL Server中SQL层和存储引擎层的优化思路。同时还分析了 MySQL 数据库中主要存储引擎的锁定机制。架构设计篇则主要以设计一个高可用可扩展的分布式...

    MySQL性能调优与架构设计(中文版)

     6.3 Query语句对系统性能的影响  6.4 Schema设计对系统的性能影响  6.5 硬件环境对系统性能的影响  6.6 小结  第7章 MySQL数据库锁定机制  7.0 引言  7.1 MySQL锁定机制简介  7.2 各种锁定机制分析...

    MySQL高性能书籍_第3版(中文)(第二部分压缩包)

    《高性能MySQL(第2版)》包含14章和4个附录,内容覆盖MySQL系统架构、设计应用技巧、SQL语句优化、服务器性能调优、系统配置管理和安全设置、监控分析,以及复制、扩展和备份/还原等主题,每一章的内容自成体系,适合...

    MySQL性能调优与架构设计(PDF)

    如 MySQL Schema 设计的技巧,Query 语句的性能优化方式方法及MySQL Server中SQL层和存储引擎层的优化思路。同时还分析了 MySQL 数据库中主要存储引擎的锁定机制。架构设计篇则主要以设计一个高可用可扩展的分布式...

    mysql的安装包,安装方法,主从复制,性能分析,慢语句查询

    此包包含mysql的安装包5.6,安装方法,主从复制方法,慢语句查询方法,性能定位方法

    高并发基础之-MySql性能优化.pdf

    我们可以通过 SHOW STATUS 语句查看 MySQL 数据库的性能参数 • SHOW STATUS LIKE 'value‘ 常用的参数: • Slow_queries 慢查询次数: • 什么是慢查询? mysql 读写分离的时候的日志,里面记录了执行某条 sql ...

    MySQL性能优化详解.docx

    MySQL语句优化是提高数据库性能的关键步骤,它包括调整参数配置、优化SQL语句和分析执行计划等。以下是一些常见的优化策略: 使用EXPLAIN分析查询:通过在查询语句前加上EXPLAIN关键字,可以了解MySQL是如何处理该...

    MySQL性能调优与架构设计.pdf

    如 MySQL Schema 设计的技巧,Query 语句的性能优化方式方法及MySQL Server中SQL层和存储引擎层的优化思路。同时还分析了 MySQL 数据库中主要存储引擎的锁定机制。架构设计篇则主要以设计一个高可用可扩展的分布式...

    MySQL limit性能分析与优化

    结论:rows 相同条件下,offset 值越大,limit 语句性能越差 二、测试 执行测试: 5750000 条数据 sql 1 执行时间: sql 6执行时间: 三、优化 方式一:可根据主键ID等其他索引字段定位到数据位置,然后使用 limit 0...

    mysql性能测试及分析

    此代码为Loadrunner 8 通过C API类型的Vuser 测试MySQL性能,或者测试sql语句性能的脚本。 这东西很少有人用,网上资料很少,一般测试B/S的很多。

    《高性能MySQL(第二版)》电子书下载(全本)

    全书包含14章和4个附录,内容覆盖MySQL系统架构、设计应用技巧、SQL语句优化、服务器性能调优、系统配置管理和安全设置、监控分析,以及复制、扩展和备份/还原等主题,每一章的内容自成体系,适合各领域技术人员作...

    MySQL5.1性能调优与架构设计.mobi

    如MySQL Schema设计的技巧,Query语句的性能优化方式方法及MySQL Server中SQL层和存储引擎层的优化思路。同时还分析了MySQL数据库中主要存储引擎的锁定机制 ●架构设计篇则主要以设计一个高可用可扩展的分布式企业级...

    MySQL高性能书籍_第3版(中文)(第一部分压缩包)

    《高性能MySQL(第2版)》包含14章和4个附录,内容覆盖MySQL系统架构、设计应用技巧、SQL语句优化、服务器性能调优、系统配置管理和安全设置、监控分析,以及复制、扩展和备份/还原等主题,每一章的内容自成体系,适合...

Global site tag (gtag.js) - Google Analytics