`
Clayz
  • 浏览: 298516 次
  • 性别: Icon_minigender_1
  • 来自: 东京
社区版块
存档分类
最新评论

MySQL查询分析与优化

 
阅读更多

Show

show status ——显示状态信息(扩展show status like ‘XXX’)

show variables ——显示系统变量(扩展show variables like ‘XXX’)

show engine innodb status ——显示InnoDB存储引擎的状态

show processlist ——查看当前SQL执行,包括执行状态、是否锁表等

mysqladmin variables -u username -p password——显示系统变量

mysqladmin extended-status -u username -p password——显示状态信息

 

Explain

Table:显示这一行的数据是关于哪张表的

 

possible_keys:显示可能应用在这张表中的索引。如果为空,没有可能的索引。可以为相关的域从WHERE语句中选择一个合适的语句

 

key:实际使用的索引。如果为NULL,则没有使用索引。MYSQL很少会选择优化不足的索引,此时可以在SELECT语句中使用USE INDEX(index)来强制使用一个索引或者用IGNORE INDEX(index)来强制忽略索引

 

key_len:使用的索引的长度。在不损失精确性的情况下,长度越短越好

 

ref:显示索引的哪一列被使用了,如果可能的话,是一个常数

 

rows:MySQL认为必须检索的用来返回请求数据的行数

 

type:这是最重要的字段之一,显示查询使用了何种类型。从最好到最差的连接类型为system、const、eq_reg、ref、range、index和ALL

  • system、const:可以将查询的变量转为常量.  如id=1; id为 主键或唯一键.
  • eq_ref:访问索引,返回某单一行的数据.(通常在联接时出现,查询使用的索引为主键或惟一键)
  • ref:访问索引,返回某个值的数据.(可以返回多行) 通常使用=时发生
  • range:这个连接类型使用索引返回一个范围中的行,比如使用>或<查找东西,并且该字段上建有索引时发生的情况(注:不一定好于index)
  • index:以索引的顺序进行全表扫描,优点是不用排序,缺点是还要全表扫描
  • ALL:全表扫描,应该尽量避免

 

Extra:关于MYSQL如何解析查询的额外信息,主要有以下几种

  • using index:只用到索引,可以避免访问表. 
  • using where:使用到where来过虑数据. 不是所有的where clause都要显示using where. 如以=方式访问索引.
  • using tmporary:用到临时表
  • using filesort:用到额外的排序. (当使用order by v1,而没用到索引时,就会使用额外的排序)
  • range checked for eache record(index map:N):没有好的索引.

 

Profiling

打开功能: mysql>set profiling=1;

show profiles; 可以得到被执行的SQL语句的时间和ID

show profile for query 1; 得到对应SQL语句执行的详细信息

测试完毕以后 ,关闭参数:mysql> set profiling=0

分享到:
评论

相关推荐

    MySQL性能分析与优化调整

    总结,MySQL性能分析与优化调整涉及多个层面,包括查询分析、索引优化、参数调整、存储结构设计、运维监控等多个方面。通过综合运用这些技术和方法,可以有效提升MySQL的运行效率,保障系统的稳定性和响应速度。实践...

    mysql查询分析器

    MySQL查询分析器通常具备多种功能,包括编写、测试、优化以及监控SQL语句,以提升数据库系统的整体效率。 在MySQL的世界里,查询分析器扮演着至关重要的角色。它允许用户输入SQL命令,然后通过解析这些命令来与...

    MySQL InnoDB 查询优化实现分析

    ### MySQL InnoDB 查询优化实现分析 #### 一、目的与背景 本文旨在深入探讨 MySQL + InnoDB 存储引擎在实现查询优化时所采取的方法及其内部机制。通过具体实例和详细的技术解析,揭示 InnoDB 如何高效处理各种查询...

    sql查询优化(提高MySQL数据库查询效率的几个技巧)

    * 优化 SQL 语句:使用 EXPLAIN 语句来分析 SQL 语句的执行计划,优化查询语句。 * 使用存储过程:使用存储过程可以将频繁查询的操作封装起来,提高查询效率。 * 优化数据库结构:优化数据库结构,例如,使用合适的...

    Mysql查询流程分析

    ### MySQL查询流程分析 在深入理解MySQL查询流程之前,我们首先需要明确几个基本概念:MySQL是一种关系型数据库管理系统,它支持SQL(Structured Query Language)语言,用于管理存储在表格中的数据。MySQL查询流程...

    由浅入深探究mysql索引结构原理、性能分析与优化

    由浅入深探究mysql索引结构原理、性能分析与优化

    mysql性能优化-慢查询分析、优化索引和配置.doc

    #### 二、查询与索引优化分析 ##### 1. 性能瓶颈定位 - **Show命令**:`SHOW`命令是MySQL中非常重要的工具之一,可以帮助我们快速查看系统状态及变量,从而定位潜在的性能瓶颈。 - `SHOW STATUS`:显示MySQL状态...

    基于MySQL数据库的查询性能优化研究.pdf

    本文主要介绍了 MySQL 数据库的查询执行过程,包括 SQL 语句的词法扫描、语法分析、语义检查、优化和执行等六个阶段,并分析了影响查询执行效率的客观因素。同时,本文还提出了几种实践可行的性能优化方法,能够保证...

    mysql高级优化查询

    根据提供的文件信息,我们可以深入探讨 MySQL 的高级优化查询这一主题,包括其查询缓存原理以及 MySQL 的内部机制等核心知识点。 ### 一、MySQL 查询缓存原理 #### 1.1 什么是查询缓存 查询缓存是 MySQL 中用于...

    MySQL索引分析及优化.pdf

    "MySQL索引分析及优化" 索引是数据库中提高速度的一个关键因素。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。索引的使用可以大幅度地提高查询速度,减少数据库的...

    mysql查询优化之索引优化

    - **监控和分析**:定期检查EXPLAIN计划,分析索引的使用情况,使用MySQL的性能分析工具如pt-query-digest来识别慢查询并优化。 - **InnoDB存储引擎的索引优化**:InnoDB支持行级锁定,其主键索引是聚簇索引,其他...

    MYSQL查询分析器

    **MySQL查询分析器** MySQL查询分析器是一种专为MySQL数据库设计的强大工具,它极大地提升了数据库管理、查询和分析的效率。相较于微软的SQL Server查询分析器,MySQL查询分析器更智能,更适合对MySQL数据库进行...

    MySQL的SQL查询性能优化技术.pdf

    本篇主要探讨了优化SQL查询的一些基本原则、企业级监控、配置与参数化、数据管理和性能考量等方面。 首先,优化的基本准则是谨慎对待最佳实践,因为每个系统都有其独特性,以前适用的方法在新的环境中可能不再有效...

    MySQL数据库设计与优化实战:提升查询性能与系统稳定性

    内容概要:本文详细介绍了 MySQL 数据库设计与优化的最佳实践,包括数据库设计的基础原则、索引设计、数据库分区与分库分表、查询优化技巧以及性能调优与监控。通过合理的设计和优化,可以帮助开发者提升 MySQL ...

    mysql性能优化.pptx

    MySQL性能优化是一个涵盖广泛的主题,涉及多个层面,包括SQL语句优化、索引优化、数据库表结构优化、系统级配置优化以及服务器硬件优化。以下是对这些方面进行详细说明: 1. **SQL语句优化** - **慢查询日志**:...

    mysql优化笔记+资料

    这些笔记涵盖了MySQL优化的主要方面,包括查询优化、SQL编写技巧、数据库设计、存储引擎选择、服务器配置、硬件升级、定期维护以及使用各种工具进行监控和调优。通过这些方法,你可以有效地提升MySQL数据库的运行...

    分析MySQL中优化distinct的技巧

    MySQL的优化器将`DISTINCT`操作转换为`GROUP BY`,使得查询在利用索引分组后,仅扫描一次所需的`nick`值。在新的执行计划中,`Using index for group-by`表明查询利用索引完成了分组操作,从而提高了效率。 通过...

Global site tag (gtag.js) - Google Analytics