Mysql Query Optmize: 查询优化器, SQL语句会给Query Optimize他会执行他认为最优的方式..

Mysql 常见问题

  CPU饱和,IO磁盘发生在装入数据大于内存时.

Explain 查询解析使用

  id, select_type, table,type,  possible_keys, key , key_len, ref, rows, Extra

id  -  表的执行顺序

  值相同: 按顺序执行

  值不同,: 值越大, 先执行. 如子查询

select_type - 数据读取操作的操作类型

SIMPLE, PRIMARY, SUBQUERY, DERIVED, UNION, UNION RESULT 主要6个表示子查询,复杂查询等

table - 表名

derived 虚表

type -  访问类型

最好的的依次:

  system > const > eq_ref > ref  > fulltext > ref_or_null> index_merge > unique_subquery > index_subquery>  range > index > all

  system > const > eq_ref > ref  > range > index > all  , 主要常用最好到ref range级别

all: 全表扫描, 从硬盘读取数据

index:   index全索引扫描,比All快.比如只找主键列值

range:  检索指定范围的行, 使用索引来选择行,

ref:       非唯一性索引扫描, 返回所有匹配的单独行,可以找到多个复合条件的行, 属于查找和扫描的混合体, 比如复合索引2列,找其中1列..

eq_ref:  唯一性索引扫描, 表只有一条记录与之匹配, 常见主键货唯一索引, 比如部门表,ID唯一,员工表有部门id,  联合查询

const:   通过索引1次找到, 主键,唯一键 只匹配一行数据,比如通过主键查一条记录

system: 只有一条记录的表, 忽略不计

- 哪些索引可以使用

possible_keys:  可能使用的索引, 不一定使用

key:       真实使用的索引,若为NULL未使用索引, 若使用覆盖索引(查询的列被索引覆盖),则只出现在key中,  比如查询的字段是复合索引的顺序一样,列一样,

key_len              标识索引使用的字节数, 越少越好,

rows -  哪些行被优化器查询

Extra - 包含不适合在其他列中显示的十分重要的信息

Using filesort:      (严重)文件索引, 无法利用索引完成的排序,排序按照索引顺序.

Using temporary  (严重)生成了临时表

Using index         效率不错, 索引被用来执行索引键值查找,

Using where

Using join buffer, 使用连接缓存JOIN使用比较多

Impossible where  SQL有问题, 不可能的SQL

select tables optimezed away

distinct

Mysql 性能分析 Explain的更多相关文章

  1. MySQL性能分析及explain的使用

    MySQL性能分析及explain用法的知识 1.使用explain语句去查看分析结果 如explain select * from test1 where id=1;会出现:id  selectty ...

  2. MySQL性能分析及explain的使用说明

    1.使用explain语句去查看分析结果 如explain select * from test1 where id=1;会出现:id selecttype table type possible_k ...

  3. MySQL性能分析, mysql explain执行计划详解

    MySQL性能分析 MySQL性能分析及explain用法的知识是本文我们主要要介绍的内容,接下来就让我们通过一些实际的例子来介绍这一过程,希望能够对您有所帮助. 1.使用explain语句去查看分析 ...

  4. SQL优化 MySQL版 -分析explain SQL执行计划与笛卡尔积

    SQL优化 MySQL版 -分析explain SQL执行计划 作者 Stanley 罗昊 [转载请注明出处和署名,谢谢!] 首先我们先创建一个数据库,数据库中分别写三张表来存储数据; course: ...

  5. mysql性能分析show profile/show profiles

    MySQL性能分析show profiles show profile 和 show profiles 语句可以展示当前会话(退出session后,profiling重置为0) 中执行语句的资源使用情 ...

  6. MySQL性能分析和优化-part 1

    MySQL性能优化 平时我们在使用MySQL的时候,怎么评估系统的运行状态,怎么快速定位系统瓶颈,又如何快速解决问题呢? 本文总结了多年来MySQL优化的经验,系统介绍MySQL优化的方法. OS性能 ...

  7. mysql性能分析-------profiling和explain

    1. profiling之性能分析 MySQL5.0.37版本以上支持了Profiling – 官方手册.此工具可用来查询 SQL 会执行多少时间,System lock和Table lock 花多少 ...

  8. mysql性能分析工具

    一.EXPALIN 在SQL语句之前加上EXPLAIN关键字就可以获取这条SQL语句执行的计划 那么返回的这些字段是什么呢? 我们先关心一下比较重要的几个字段: 1. select_type 查询类型 ...

  9. MySQL性能分析show profiles详解

    前言 前几篇文章我们讲了什么是 MySQL 索引,explain分析SQL语句是否用到索引,以及索引的优化等一系列的文章,今天我们来讲讲Show profiles,看看SQL耗时到底出现在哪个环节. ...

随机推荐

  1. UVALive-3268 Jamie's Contact Groups (最大流,网络流建模)

    题目大意:你的手机通讯录里有n个联系人,m个分组,其中,有的联系人在多个分组里.你的任务是在一些分组里删除一些联系人,使得每个联系人只在一个分组里并且使人数最多的那个分组人数最少.找出人数最多的那个分 ...

  2. bzoj1067

    题意: 给你下雨量,让你判断每一句话是否正确 题解: 线段树 用来维护判断 代码: #include <cstdio> #include <cstring> #include ...

  3. Total Defense Anti-Virus – 免费6个月

    Total Defense Anti-Virus 具有病毒和间谍软件保护,免费的专家远程安装和设置,快速扫描引擎不会拖慢电脑速度,基于云保护.高级Rootkit保护,自动扫描驱动器和内存等等.官方网站 ...

  4. 腾讯云 服务器 ubuntu 16.04 python3 环境

    积分 - 164 排名 - 183650 首先把腾讯云上的服务器,重装系统,选择64位ubuntu16.04,最低配也要用64位的…… 装好后,首先切换 python 版本: sudo update- ...

  5. graphcool-framework 一个基于graphql的后端开发框架

    特性 GraphQL database 启动便捷的数据迁移数据演变 Flexible auth 基于jwt 的认证 Realtime API 基于graphql 的Subscriptions High ...

  6. nsq 安装试用

    因为是mac 系统安装试用brew install nsq 安装 brew install nsq 组件说明 nsqd 守护进程进行消息的接受,缓存以及传递消息给客户端,需要配置nsqlookupd地 ...

  7. C#.NET通过Socket实现平行主机之间网络通讯(含图片传输的Demo演示)

    在程序设计中,涉及数据存储和数据交换的时候,不管是B/S还是C/S模式,都有这样一个概念:数据库服务器.这要求一台性能和配置都比较好的主机作为服务器,以满足数目众多的客户端进行频繁访问.但是对于一些数 ...

  8. PHP框架(如:laravel、yii2、thinkPHP5)中统一异常处理及统一日志打印

    背景: 现在写接口服务应用有一个很通用的需求,想通过日志.或者监控的形式监测的接口的运行情况,比如耗时.请求参数.响应结果.和前端联调接口时或者排查线上问题时日志必不可少,特别是现场日志. 应用运行时 ...

  9. XSS漏洞攻击原理与解决办法

    转自:http://www.frostsky.com/2011/10/xss-hack/ 对于的用户输入中出现XSS漏洞的问题,主要是由于开发人员对XSS了解不足,安全的意识不够造成的.现在让我们来普 ...

  10. css3中的相关单位

    引用地址 :http://blog.csdn.net/jyy_12/article/details/42557241