首页 > 其他分享 >explain extra字段

explain extra字段

时间:2024-09-20 13:45:56浏览次数:7  
标签:name extra explain 字段 user key null where age

环境

drop table if exists user;
create table user(
	id int primary key not null,
	name varchar(20) not null,
	age int not null,
	sex char(10) not null,
	hobby varchar(30) 
);
insert into user values (1,'xz1',1,'man','read1'),
(2,'xz2',2,'man','read2'),(3,'xz3',3,'man','read3'),
(4,'xz4',4,'man','read4'),(5,'xz5',5,'man','read5');
-- 联合索引
create index inx_name_age_sex on user(name,age,sex);

null

where 主键索引

  • 主键查询不回表,因为需要字段就是从聚簇索引上查找
-- type=const,extra=null,key=PRIMARY,key_len=4
explain select name from user where id=1;

where 索引的前导列

1、查询列未被索引覆盖,需要回表
2、where索引的前导列

-- type=ref,extra=null,key=inx_name_age_sex,key_len=62(name索引生效)
explain select * from user where name='xz1';

-- type=all,extra=Using where,key=inx_name_age_sex,key_len=96(索引全部生效)
explain select * from user where name='xz1' and age=1 and sex='man';

延伸:违反最左前缀法则

-- type=ref,extra=null,key=null,key_len=null
explain select * from user where age=1;
-- type=ref,extra=null,key=null,key_len=null
explain select * from user where sex='man';
-- type=ref,extra=null,key=null,key_len=null
explain select * from user where age=1 and sex='man';
-- type=ref,extra=null,key=inx_name_age_sex,key_len=66(name和age索引生效)
explain select * from user where age=1 and name='xz1'

标签:name,extra,explain,字段,user,key,null,where,age
From: https://www.cnblogs.com/goodluckxiaotuanzi/p/18422365

相关文章

  • MySQL 中的 EXPLAIN 命令:洞察查询性能的利器
    《MySQL中的EXPLAIN命令:洞察查询性能的利器》在MySQL数据库的使用中,优化查询性能是至关重要的一项任务。而EXPLAIN命令就是我们用来深入了解查询执行计划的强大工具。今天,我们就来一起探讨如何在MySQL中使用EXPLAIN命令,并通过实例进行解析。一、EXPLAIN命令简介EXPL......
  • explian type extra补充
    droptableifEXISTSuser;createtableuser( idintprimarykey,nameVARCHAR(20),ageint);insertintouservalues(1,'xz',10),(2,'xz2',12);--innodb主键id聚集索引,数据和索引放到一块存储--不会发生回表查询,即使extra=null,--type=const,extra=nullexplain......
  • Oracle 中,根据状态字段进行自定义排序例(待验证、待维修、重新维修)
    按照指定的顺序(待验证、待维修、重新维修、待派单、待接单、驳回、已完成)进行排序,可以修改ORDERBY子句中的CASE语句。以下是修改后的查询:SELECT a.nid,  CASEa.REPAIR_PROGRESS    WHEN1THEN'待验证'    WHEN2THEN'待维修'    WHEN3TH......
  • mysql 将A库的表名和表字段注释,迁移到另外一个库中,生成alter 语句
    表备注--获取用于添加表备注的SQL语句SELECTCONCAT('ALTERTABLE目标数据库名.',TABLE_NAME,'COMMENT=\'',TABLE_COMMENT,'\';')ASalter_table_comment_sqlFROMINFORMATION_SCHEMA.TABLESWHERETABLE_SCHEMA='......
  • ArcGIS标注表达式用到的字段值有空值导致标签无法显示怎么办
    数据:几个楼,包含三个字段信息,其中有的楼没有地下楼层的话,地下楼层字段值为空目标:用标注“显示名称+地上楼层+地下楼层”等信息, 遇到的问题:如果只是简单的把字段相加,地下楼层为空的要素标签不显示 然后我尝试把地下层数换成string类型,试了试还是不行,没有变化 查了下VBScr......
  • 易优eyoucms网站添加自定义新建字段的时候报错
    根据提供的错误信息 SQLSTATE[42000]:Syntaxerrororaccessviolation:1118Rowsizetoolarge.ThemaximumrowsizefortheusedtabletypenotcountingBLOBsis65535.YouhavetochangesomecolumnstoTEXTorBLOBs,这个错误表明数据库表的行大小超过了MySQL......
  • 易优eyoucms网站插入字段长度超过设定的长度,请联系技术处理。
    报错/core/library/think/db/Connection.php第466行左右插入字段长度超过设定的长度,请联系技术处理。[错误代码]SQLSTATE[22001]:Stringdata,righttruncated:1406Datatoolongforcolumn'extract_code'atrow1解决 SQLSTATE[22001]:Stringdata,righttrun......
  • 快速比较两个数据库所有表的字段是否一致
    背景在开发时,常常会有开发环境,测试环境,生产环境。当开发环境中的数据库结构发生变化时,往往需要同步到测试环境和生产环境,但是有时候会忘记同步了。那么,如何快速判断两个数据库的所有表字段是否一致呢?需要工具:navicat(或类似数据库工具),BeyondComapre(或类似文本比较工具)。导出数......
  • mysql查询字段排序规则、数据库编码、表编码,修改排序规则
    查询字段排序规则、数据库编码、表编码SELECTTABLE_CATALOG,TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,COLLATION_NAMEFROMINFORMATION_SCHEMA.COLUMNS 表字段修复#改变字段数据字符集、排序规则SELECTTABLE_SCHEMA'数据库',TABLE_NAME'表',CO......
  • VBA 获取字段标题代码轻松搞定
    hi,大家好!最近又有一段时间没和大家唠嗑了,最近也没有时间给大家开直播,天天忙,但不知道在忙啥!那今天我们来讲点啥好玩的呢?今天是老师节,那就先祝各位老师节日快乐!我们在开发过程中,很多情况,大家都会去使用表,当然也有用到链接表的情况,那如果用VBA该怎么获取字段名的标题呢?我们今天就来看......