explain执行后返回id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra列。 1、id列 id列的编号是select的序列号,有几个select就有几个id,并且id的顺序是按照select出现顺序增长的,MySQL将select查询分为简单查询(SIMPLE)和复杂查询(PRIMARY)。 复杂查询分为三类:简单子查询、派生表(from...
使用mysql提供的explain命令来查询sql语句的执行计划,查看sql语句有没有使用上索引,有没有全表扫描等。 expain出来的信息有12列,分别是,id,select_type,table,partitions,type,possible_keys,key,key_len,ref,rows,filtered,Extra。 如图: 一,概要描述 id:所泽标识符 select_type:表示查询的类型 table:输出结果集...
CREATETABLEt1(idINT(10)AUTO_INCREMENT,contentVARCHAR(100)NULL,PRIMARYKEY(id));CREATETABLEt2(idINT(10)AUTO_INCREMENT,contentVARCHAR(100)NULL,PRIMARYKEY(id));CREATETABLEt3(idINT(10)AUTO_INCREMENT,contentVARCHAR(100)NULL,PRIMARYKEY(id));CREATETABLEt4(idINT(10)AUTO_INCREMENT,contentVARCHAR(100)NULL...
`empno`int(20)NOTNULLCOMMENT'工号',`deptno`int(20)NOTNULLCOMMENT'部门编号',`sal`int(11)NOTNULLDEFAULT0COMMENT'销售量',PRIMARYKEY(`emp_id`)USINGBTREE,INDEX`u1`(`deptno`)USINGBTREE,UNIQUEINDEX`u2`(`empno`)USINGBTREE)ENGINE=InnoDBCHARACTERSET...
explain 时可能出现 possible_keys 有列,而 key 显示 NULL 的情况,这种情况是因为表中数据不多,mysql认为索引对此查询帮助不大,选择了全表查询。 如果该列是NULL,则没有相关的索引。在这种情况下,可以通过检查 where 子句看是否可以创造一个适当的索引来提高查询性能,然后用 explain 查看效果。
使用mysql许可 mysql possible_keys,执行计划解析(全字段)使用执行计划EXPLAIN或者DESCEXPLAINselect*fromuser可以得到以下返回结果idselect_typetablepartitionstypepossible_keyskeykey_lenrefrowsfilteredExtra1SIMPLEuserALL10651100这些字段的含义分别是id:在一个
如果该列是NULL,则没有相关的索引。在这种情况下,可以通过检查WHERE子句看是否它引用某些列或适合索引的列来提高你的查询性能。如果是这样,创造一个适当的索引并且再次用EXPLAIN检查查询 六、Key key列显示MySQL实际决定使用的键(索引),必然包含在possible_keys中 ...
possible_keys: 显示可能应用在这张表中的索引,一个或多个。 查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询实际使用 key: 实际使用的索引。如果为NULL,则没有使用索引 查询中若使用了覆盖索引,则该索引和查询的selet字段重叠,仅出现在key列表中。
explain select * from t_user; 【possible_keys列】 这一列的结果表明查询可能使用到哪些索引。但有些时候也会出现出现possible_keys 列有结果,而 后面的key列显示 null 的情况,这是因为此时表中数据不多,优化器认为查询索引对查询帮助不大,所以没有走索引查询而是进行了全表扫描。
25_尚硅谷_explain之possible_keys和key介绍 制作不易,大家记得点个关注,一键三连呀【点赞、投币、收藏】感谢支持~ 本教程主要讲授针对 Java 开发所需的 MySQL 高级知识,课程中会让大家快速掌握索引,如何避免索引失效,索引的优化策略,了解innodb和myisam存储引擎,熟