navicat查看执行计划,mysql执行计划老叶
一。什么是数据库执行计划:
利用一个SQL语句, 你可能要Server取出所有News表中的信息. 当Server收到的这条SQL的时候, 第一件事情并不是解析它. 如果这条SQL没有语法错误, Server才会继续工作. Server会决定最好的计算方式. Server会选择, 是读整个News表好呢, 还是利用索引会比较快些. Server会比较所有可能方法所耗费的资源. 最终SQL语句被物理性执行的方法被称做执行计划或者是查询计划(数据库服务器在执行sql语句之前会制定几套执行计划!看那个机会消耗的系统资源少,就是用那套计划!)
二。执行计划的生成方法:
explain select …………….(在相应的select前面加explain即可) 三。执行计划的查看: SQL执行结果: 每列含义: \|/. Id :包含一系列数字,表示select子句或操作表在查询中的执行顺序。 (执行顺序从大到小; 如果id值相同,则执行顺序为从上到下。 ) \|/. Select_type:表示查询中每个select子句的类型。 (简单或复杂) : 1. SIMPLE (简单)查询不包含子查询或UNION (联合)。 2 .如果PRIMARY (基本,首选)查询包含复杂的子部分,则最外层查询将被标记为PRIMARY。 3. SUBQUERY (子查询):SELECT或WHERE列表中包含标记为SUBQUERY的子查询。 4. DERIVED (派生):FROM列表中的子查询标记为DERIVED。 5 .如果第二个SELECT出现在UNION之后,它将被标记为UNION。 如果UNION包含在FROM子句的子查询中,则外部SELECT标记为: DERIVED。 从UNION表中检索结果的SELECT表示为UNION RESULT (联接的结果)。 \|/. table :表名称 \|/. Type :也称为访问类型,指示MySQL如何在表中查找所需的行。 一般包括以下几个方面。 1. ALL:Full Table Scan,MySQL进行全表扫描。 2 .索引:全索引扫描,索引与全索引相区别,索引类型只遍历索引树。 3 .范围:范围索引扫描。 扫描索引从某个点开始,并返回与值域匹配的行。 常见于between、等查询中。 4. ref :非唯一索引扫描。 返回与单个值匹配的所有行。 常用于使用非唯一索引或唯一索引的非唯一前缀进行搜索。 5. eq_ref :唯一的索引扫描。 对于每个索引关键字,表中只有一条记录匹配。 常用于主键或唯一索引扫描。 6. const,system:MySQL在优化查询的某些部分并将其转换为常量时使用这些类型的访问。 通过将主键放入where列表中,MySQL可以将查询转换为常量。 7. NULL:MySQL在优化过程中分解语句,甚至不需要在运行时访问表或索引。 \|/. possible _ keys :指示MySQL可用于在表中查找行的索引。 如果与查询相关的字段具有索引,则会列出该索引,但不一定由查询使用。 \|/. key :显示MySQL在查询中实际使用的索引,如果没有使用索引,则显示为NULL。 如果查询使用了封面索引,则该索引仅显示在key列表中。 \|/. key_len :表示索引中使用的字节数,并允许您计算查询中使用的索引的长度。 \|/. ref :表示将使用这些列或常量来检索上表中的连接条件,即索引列中的值。 3|/. rows :表示MySQL根据表统计信息和索引选择情况,估算为了找到所需记录而必须读取的行数。 \|/. Extra :包含不适合在其他列中显示但非常重要的其他信息。 1.using where :指示在存储引擎中记录MySQL服务器后执行“后过滤器”。 如果查询不能使用索引,usingwhere的作用只是警告MySQL在where子句中过滤结果集。 2.using :表示MySQL必须使用临时表来存储结果集。 常用于排序和查询分组。 3.using filesort :在MySQL中不能使用索引进行排序的操作称为“文件排序”。 四。数据库执行计划的局限性: EXPLAIN不会告诉您触发器、有关存储过程的信息或用户定义的函数对查询的影响 EXPLAIN不考虑各种cache (cache通常是指缓存SRAM )。 SRAM称为静态存储器,“静态”意味着将数据写入SRAM后,除非重新写入新数据或关闭电源,否则写入的数据不会改变。) 无法在EXPLAIN中查看MySQL在执行查询时所做的优化工作。 部分统计信息是估计的,不是准确的值。 EXPALIN只能解释选择操作。 除此之外的操作请改写为SELECT,然后确认执行计划。 (mysql5.6版本支持直接显示。) 原文地址: https://www.cn blogs.com/ruian nan/p/7707534.html 文章: https://www.cn blogs.com/klv Chen/p/10137117.html