MySQL执行计划-Explain初探
来源:互联网 发布:蛐蛐五线谱 mac 编辑:程序博客网 时间:2024/06/04 19:01
一、Explain是什么
简而言之,explain是用来查看执行计划的,使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。可以分析出查询语句或者是表结构的性能瓶颈。具体说明可以参考MySQL官网。
二、Explain能干嘛
- 表的读取顺序
- 数据读取操作的操作类型
- 哪些索引可以使用
- 哪些索引被实际使用
- 表之间的引用
- 每张表有多少行被优化器查询
三、Explain怎么用
- EXPLAIN 的使用很简单:explain+sql语句即可。
EXPLAIN select * from sys_user LEFT JOIN sys_role on sys_user.role_id = sys_role.role_id ;
- EXPLAIN的关键是看懂执行计划所包含的信息。
如下图所示为执行后的结果,首先要知道表头各个字段的含义。
各个字段的具体含义和使用
EXPLAIN-id
Id是什么?
该id不是主键,而是Explain分析select语句之后,得出的查询序列号,包含一组数字,用来表示该查询语句中执行select子句或者操作表的顺序。
Id的三种取值情况:
- Id相同:执行顺序自上而下,顺序执行
EXPLAIN select * from sys_user LEFT JOIN sys_role on sys_user.role_id = sys_role.role_id ;
该语句执行后的结果:
这是什么意思呢?这表明在该查询中,两张表的优先级是一致的,执行顺序就是谁在前,谁先执行,由上而下执行,也就是sys_user先查,再查sys_role
2. Id不同:如果是子查询,id的值会递增,值越大,优先级越高,越先执行。
explain select sys_user.* from sys_user where role_id = (select role_id from sys_role where role_id = 1);
3. Id有的相同有的不相同:id值越大越先执行,值相同的,从上而下顺序执行。
explain select * from (select * from sys_user limit 10) as s,sys_role where s.role_id = sys_role.role_id;
阅读全文
0 0
- MySQL执行计划-Explain初探
- explain mysql 执行计划
- mysql explain执行计划
- mysql EXPLAIN--执行计划
- MYSQL执行计划Explain
- mysql explain执行计划
- MYSQL执行计划explain
- Mysql explain 执行计划
- MySQL explain执行计划
- Mysql查看执行计划-explain
- Mysql的执行计划explain
- [MySQL] explain执行计划解读
- MySQL explain执行计划解读
- MySQL explain执行计划解读
- MySQL explain执行计划解读
- MySQL explain执行计划解读
- mysql explain 执行计划解读
- MySQL explain执行计划解读
- 转载-解决stackoverflow打开慢不能注册登录
- 华为nova 2s首发!全面屏+正面指纹 四摄镜头让你拍照更美!
- darwin之RTP协议分析(转载)
- FFmpeg关于nb_smples,frame_size以及profile的解释
- [LeetCode] 500.Keyboard Row
- MySQL执行计划-Explain初探
- Linux上oracle数据库的关闭和启动
- 【C++的探索路8】运算符重载为友元以及可变长数组程序编写
- 深入理解JVM--JVM垃圾回收机制
- PADS 转 Altium Designer
- 中国剩余定理
- IP地址,子网掩码,网关,DNS之间关系
- mac sublime3 3156 LICENSE
- 机器学习-高斯过程,随机过程回归