本篇内容主要讲解“mysql优化器追踪分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql优化器追踪分析”吧!开启optimizer_trace:set optimizer_trace=’enabled=on’;set optimizer_trace_max_mem_size=1000000;set end_markers_in_json=on;执行语句select * from information_schema.optimizer_traceG;以上优化器的主要步骤:1.join_preparation :准备阶段,包查询语句转换,转换成嵌套循环语句等 expanded_query transformations_to_nested_joins2.join_optimization :优化阶段,包括以下主要阶段 condition_processing :处理where条件部分,主要包括等式处理、常量处理、多余条件处理 table_d免费主机域名ependencies :表依赖检查 ref_optimizer_key_uses :评估可用的索引 rows_estimation :评估访问单表的方式,及扫描的行数与代价 considered_execution_plans :评估最终可使用的执免费主机域名行计划 condition_on_constant_tables :检查带常量表的条件 attaching_conditions_to_tables :将常量条件作用到表 refine_plan 改进计划,不理解3.join_execution :执行阶段通过以上可以看错,当优化器一开始对优化器进行评估时就直接选择了全表扫描的方式,即是说此时优化器直接忽视了s表已有的索引IND_SHOP_DEPTID。我们将以下的d.DEPTID = ‘00001111’ 换成s.DEPTID = ‘00001111’,发现其可以选择了索引,此时s表看起来做了驱动表。追踪优化器过程:1.在ref_optimizer_key_uses 过程找到s表可以通过”‘00001111′”走索引,并且通过”Deptid”等值访问2.在rows_estimation过程中s表选择IND_SHOP_DEPTID的cost最低。3.在considered_execution_plans过程选择IND_SHOP_DEPTID的访问路径,并访问方式是ref。到此,相信大家对“mysql优化器追踪分析”有了更深的了解,不妨来实际操作一番吧!这里是云技术网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
本篇内容主要讲解“怎么理解并掌握MySQL”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解并掌握MySQL”吧!MySQL分为 server 层和存储引擎连接器:管理连接权限验证查询缓存:命中缓存直接换回查询…