首页 > 其他分享 >颠覆我认知的 select id,为什么?

颠覆我认知的 select id,为什么?

时间:2022-11-29 23:11:33浏览次数:38  
标签:颠覆 int DEFAULT 123 NULL id select

表z: id是主键自增,b列 单列做了索引,c为普通字段(其实换成其他任何带主键的表 也有该问题)

CREATE TABLE `z` (
`id` int NOT NULL AUTO_INCREMENT,
`b` int DEFAULT NULL,
`c` int NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `b` (`b`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3

 为了排除其他影响,表中就两条数据 如下:

 

 

 


sql1:select id from z where b=123

 

 

 


sql2:select c from z where b=123 或者 select b from z where b=123

 

 

请教:为什么 sql2的耗时总比 sql1耗时少。换了几个mysql服务器,和几个表 都是这个结果。颠覆认知了~~~

 

标签:颠覆,int,DEFAULT,123,NULL,id,select
From: https://www.cnblogs.com/paulxie/p/16937059.html

相关文章

  • IDEA 插件
    IDEA插件1、RestfulToolkit对象转换为KV键值对对象转换为JSON(单行展示)对象转换为JSON快速跳转至CONTROLLER(MAC:command+/)其他功能待你去摸索//KVmerc......
  • ACID,事务,事务的实现原理,隔离级别
    1事务的四大特性ACID原子性:一个事务的操作要么全部完成,要么全部不完成一致性:事务操作前和操作后,数据满足完整性约束,就是数据库的总数据是一样的隔离性:多个事务使用相同......
  • idea 乱码, tomcat乱码
    1,ideavmoption添加:-Dfile.encoding=UTF-82,在应用runconfiguration里添加vmoptiton-Dfile.encoding=UTF-83,在tomcatrun/debugconfiguration中startup/......
  • Unity用户手册-Unity与Android、iOS互相调用
        C#是以Assembly(汇编集)为一个基本单位组织代码的,dll就是一个assemble,dll之间有加载依赖顺序。dll是windows平台上的动态库,而so是linux平台上的动态库,最后.a是IOS......
  • Unity-Animator Override Controller
    AnimatorOverrideController是一种资产类型,允许您扩展现有的AnimatorController,替换使用的特定动画,但保留原始结构,参数和逻辑。允许您创建相同基本状态机的多个变体,但每......
  • Android 运行时权限终极总结
    目录​​一:基础&起因​​​​二:基本使用​​​​2.1 Activity当中的一般用法​​​​2.2Fragement中的用法​​​​三:注意事项和打电话例子​​​​3.1注意事项​​​​3......
  • Android约束布局:ConstraintLayout学习文章记录
    (一)Android新特性介绍,ConstraintLayout完全解析(二)ConstraintLayout完全解析快来优化你的布局吧参考官方文档:​​https://developer.android.com/reference/android/suppor......
  • @Override is not allowed when implementing interface method 解决办法
    1.现象实现接口中的方法时, @Override注解标签编译报错2.原因编译器Languagelevel版本太低,实现接口的方法时 不支持@Override注解修饰方法3.解决思路File......
  • android-当android studio更新时遇到Connetion failed
    获取到你的当前版本号:获取方法:Help->About,获取后如下图所示:然后获取最新的版本编号:打开网页https://dl.google.com/android/studio/patches/updates.xml在......
  • android的sqlite获取当天数据的sql语句
    SELECTcount(*)FROM表名WHEREstrftime('%m-%d','now','localtime')=strftime('%m-%d',表中时间字段)1以上查询语句只需修改where字符串增以增加更多限制条件。“......