Mysql 性能分析 Explain
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的更多相关文章
- MySQL性能分析及explain的使用
MySQL性能分析及explain用法的知识 1.使用explain语句去查看分析结果 如explain select * from test1 where id=1;会出现:id selectty ...
- MySQL性能分析及explain的使用说明
1.使用explain语句去查看分析结果 如explain select * from test1 where id=1;会出现:id selecttype table type possible_k ...
- MySQL性能分析, mysql explain执行计划详解
MySQL性能分析 MySQL性能分析及explain用法的知识是本文我们主要要介绍的内容,接下来就让我们通过一些实际的例子来介绍这一过程,希望能够对您有所帮助. 1.使用explain语句去查看分析 ...
- SQL优化 MySQL版 -分析explain SQL执行计划与笛卡尔积
SQL优化 MySQL版 -分析explain SQL执行计划 作者 Stanley 罗昊 [转载请注明出处和署名,谢谢!] 首先我们先创建一个数据库,数据库中分别写三张表来存储数据; course: ...
- mysql性能分析show profile/show profiles
MySQL性能分析show profiles show profile 和 show profiles 语句可以展示当前会话(退出session后,profiling重置为0) 中执行语句的资源使用情 ...
- MySQL性能分析和优化-part 1
MySQL性能优化 平时我们在使用MySQL的时候,怎么评估系统的运行状态,怎么快速定位系统瓶颈,又如何快速解决问题呢? 本文总结了多年来MySQL优化的经验,系统介绍MySQL优化的方法. OS性能 ...
- mysql性能分析-------profiling和explain
1. profiling之性能分析 MySQL5.0.37版本以上支持了Profiling – 官方手册.此工具可用来查询 SQL 会执行多少时间,System lock和Table lock 花多少 ...
- mysql性能分析工具
一.EXPALIN 在SQL语句之前加上EXPLAIN关键字就可以获取这条SQL语句执行的计划 那么返回的这些字段是什么呢? 我们先关心一下比较重要的几个字段: 1. select_type 查询类型 ...
- MySQL性能分析show profiles详解
前言 前几篇文章我们讲了什么是 MySQL 索引,explain分析SQL语句是否用到索引,以及索引的优化等一系列的文章,今天我们来讲讲Show profiles,看看SQL耗时到底出现在哪个环节. ...
随机推荐
- hdu——1873(优先队列)
看病要排队 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- java Cookie 获取历史记录列表(三)
/** * 获取Cookie里面的东西 */ protected List<String> getCookieList() { Cookie[] cookies = null; Cooki ...
- .NET连接MongoDB数据库实例教程
这则小窍门将讲述如何开发一个.NET应用来连接Mongo数据库并执行多种操作.同时还稍微涉及了Mongo数据库和多种命令. 使用代码 让我们从Mongo数据库的一些细节和基本命令开始,并最终介绍如何创 ...
- 彻底解决WP的TextBox中文字过长显示不出来的问题
文字如果过长的话在TextBox中会显示不完全,这个大家都知道了,后来有人做了ExTextblock增强控件,大部分文字是可以显示出来了,不过,在某些情况下还是会有显示不全的情况. 这个时候一个解决方 ...
- HDU 1198
http://acm.hdu.edu.cn/showproblem.php?pid=1198 裸并查集,主要工作在根据题目给出关系构图 #include <iostream> #inclu ...
- ZetCode PyQt4 tutorial Drag and Drop
#!/usr/bin/python # -*- coding: utf-8 -*- """ ZetCode PyQt4 tutorial This is a simple ...
- Python + Djang+ Visual Studio Code(VSCode)
使用 Visual Studio Code(VSCode)搭建简单的 Python + Django 开发环境 https://www.cnblogs.com/Dy1an/p/10130518.htm ...
- 0302 IT行业就业与软件工程
阅读以下文章 http://www.thea.cn/news/terminal/9/9389.html http://www.shzhidao.cn/system/2015/09/22/0102610 ...
- oracle Union 中 ORA-12704:字符集不匹配问题的解决 .
在使用Union all连接时,若A集合中某列为nvarchar2或nvarchar类型,而B集合中无此列,用‘ ’ 来代替是会报字符集不匹配,解决方法有两种,见下面的示例 例: select '中国 ...
- 隐藏 FastAdmin 列表中的拖动排序按钮
隐藏 FastAdmin 列表中的拖动排序按钮 就是以下这个按钮,想先删除不要. 刚开始在 CMS 插件中的栏目中发现没有,以为在哪个位置中,但找到半天的 weigh 都没有找到weigh 的字眼. ...