mysql> explain select * from t1 where a<100 and b > 100; ---- ------------- ------- ------------ ------- --------------- ------ --------- ------ ------ ---------- ------------------------------------ | id | select_type | table | partitions | type| possible_keys | key| key_len | ref| rows | filtered | Extra| ---- ------------- ------- ------------ ------- --------------- ------ --------- ------ ------ ---------- ------------------------------------ |1 | SIMPLE| t1| NULL| range | a| a| 5| NULL |99 |33.33 | Using index condition; Using where | ---- ------------- ------- ------------ ------- --------------- ------ --------- ------ ------ ---------- ------------------------------------
上面示例中,从 a 索引上取得 99 行数据,优化器估算认为这 99 行数据中有 33.33% 满足 b > 100 这个条件 。对于单表查询来说,这个意义不大 。
对于关联查询来说,驱动表的 rows*(filtered/100) 代表优化器认为的扇出,对于关联查询的成本估算有很大的影响 。举例:
mysql> EXPLAIN SELECT * FROM s1 INNER JOIN s2 ON s1.key1 = s2.key1 WHERE s1.common_field = 'a'; ---- ------------- ------- ------------ ------ --------------- ---------- --------- ------------------- ------ ---------- ------------- | id | select_type | table | partitions | type | possible_keys | key| key_len | ref| rows | filtered | Extra| ---- ------------- ------- ------------ ------ --------------- ---------- --------- ------------------- ------ ---------- ------------- |1 | SIMPLE| s1| NULL| ALL| idx_key1| NULL| NULL| NULL| 9688 |10.00 | Using where ||1 | SIMPLE| s2| NULL| ref| idx_key1| idx_key1 | 303| xiaohaizi.s1.key1 |1 |100.00 | NULL| ---- ------------- ------- ------------ ------ --------------- ---------- --------- ------------------- ------ ---------- -------------
从执行计划中可以看出来,查询优化器打算把 s1 当作驱动表,s2 当作被驱动表 。我们可以看到驱动表 s1 表的执行计划的 rows 列为 9688, filtered 列为 10.00,这意味着驱动表 s1 的扇出值就是 9688 × 10.00% = 968.8,这说明还要对被驱动表执行大约 968 次查询 。
ExtraExtra 是 EXPLAIN 输出中另外一个很重要的列,该列显示 MySQL 在查询过程中的一些详细信息 。
【schedual定时任务执行报错 explain执行计划详解】由于对其中几个状态有疑惑,所以这部分内容写到另一篇文章中单独讨论 。
推荐阅读
- Win10游戏全屏任务栏无法隐藏的三种解决方法
- 小编教你在oppoa3中打开全屏多任务的方法介绍。
- 小编分享车到哪APP发布任务的操作方法。
- iPhone手机快手任务中心在哪里
- 如何打开任务管理器 打开任务管理器方法
- 血盟荣耀荣誉之路是什么,传奇之路任务奖励
- 奥拉星怎么接任务,《奥拉星手游》晶石获取方法介绍
- 造梦3任务怎么做,我的深圳造梦记
- 天猫精灵怎么设置定时关机 天猫精灵怎样设置定时关机
- 崩坏3驱魔任务能刷什么碎片,每日驱魔选择建议