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. hdu——1873(优先队列)

    看病要排队 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  2. java Cookie 获取历史记录列表(三)

    /** * 获取Cookie里面的东西 */ protected List<String> getCookieList() { Cookie[] cookies = null; Cooki ...

  3. .NET连接MongoDB数据库实例教程

    这则小窍门将讲述如何开发一个.NET应用来连接Mongo数据库并执行多种操作.同时还稍微涉及了Mongo数据库和多种命令. 使用代码 让我们从Mongo数据库的一些细节和基本命令开始,并最终介绍如何创 ...

  4. 彻底解决WP的TextBox中文字过长显示不出来的问题

    文字如果过长的话在TextBox中会显示不完全,这个大家都知道了,后来有人做了ExTextblock增强控件,大部分文字是可以显示出来了,不过,在某些情况下还是会有显示不全的情况. 这个时候一个解决方 ...

  5. HDU 1198

    http://acm.hdu.edu.cn/showproblem.php?pid=1198 裸并查集,主要工作在根据题目给出关系构图 #include <iostream> #inclu ...

  6. ZetCode PyQt4 tutorial Drag and Drop

    #!/usr/bin/python # -*- coding: utf-8 -*- """ ZetCode PyQt4 tutorial This is a simple ...

  7. Python + Djang+ Visual Studio Code(VSCode)

    使用 Visual Studio Code(VSCode)搭建简单的 Python + Django 开发环境 https://www.cnblogs.com/Dy1an/p/10130518.htm ...

  8. 0302 IT行业就业与软件工程

    阅读以下文章 http://www.thea.cn/news/terminal/9/9389.html http://www.shzhidao.cn/system/2015/09/22/0102610 ...

  9. oracle Union 中 ORA-12704:字符集不匹配问题的解决 .

    在使用Union all连接时,若A集合中某列为nvarchar2或nvarchar类型,而B集合中无此列,用‘ ’ 来代替是会报字符集不匹配,解决方法有两种,见下面的示例 例: select '中国 ...

  10. 隐藏 FastAdmin 列表中的拖动排序按钮

    隐藏 FastAdmin 列表中的拖动排序按钮 就是以下这个按钮,想先删除不要. 刚开始在 CMS 插件中的栏目中发现没有,以为在哪个位置中,但找到半天的 weigh 都没有找到weigh 的字眼. ...