where显示null行_Python 之 MySql“未解之谜”14-- 都是 NULL 惹的祸(下)
最近在网上看到 MySql
关于 NULL 的文章
有几个值得争议的观点,我们一起看看
● 准备工作
MySql 版本 5.7,InnoDB 存储引擎,
表 test 数据量 10 w,
其中 a ,b,c 都是单列索引,都可以为 NULL,
a 列中 99 % 为 NULL,b 列中 10 % 为 NULL ,c 列中 90 % 为 NULL
● sql 语句样例
其中 a 可换成 b 或者 c
● 网友观点
观点 1 :当 where 条件中出现 IS NULL 或者 IS NOT NULL,索引失效
观点 2 :含有 NULL 的列不能创建索引,B + 树不能存储 NULL 值
● 通过 explain 命令分析
a 列中 99 % 为 NULL,b 列中 10 % 为 NULL ,c 列中 90 % 为 NULL
表1
从上述 sql 测试结果看:
● 当 where 条件中出现 IS NULL 或者 IS NOT NULL,索引失效。这句话是不正确。
关于索引是否存储 NULL 值?
● 反方:索引不存储 NULL值。
① 从表 1 中,当执行 explain 序号 1 时,使用了索引。在 表中存在大量 NULL 的情况下,去索引查询,然后再回表查询(一条条),效率还不如全表扫描(加载一个块)。
② 从表 1 中,当执行 explain 序号 3 或者 4 时,如果索引存储 NULL值,那么explain Extra 信息应该是 Using index,而实际情况是Using where;Using index,说明需要回表查询。
● 正方:索引存储 NULL 值。
如果 NULL 值不存储在索引树中,为什么会在 where IS NULL 条件下会去走索引,走索引说明定位到了为 NULL的值,至于反方所说的第二点,为什么明明是覆盖索引,Extra 不显示 Using index 的问题,因 NULL 是一种特殊的值,在索引树中是经过复杂计算的,需要回表查询。
>>>Python 之 MySql“未解之谜”13--都是 NULL 惹的祸(上)
where显示null行_Python 之 MySql“未解之谜”14-- 都是 NULL 惹的祸(下)相关推荐
- hibernate 复合主键 根据主键删除_Python 之 MySql“未解之谜”11--主键 id 那些事
主键 id 用自增和 uuid 有什么区别? ● uuid 有 16 个字节,比 int(4 byte)和 bigint(8 byte)占用更多存储空间 有大量数据的时候 uuid 主键不会像自增主键 ...
- rust月球服务器名字_月亮的十大未解之谜
关于月亮的十大未解之谜至今仍然无法解开,月亮未解之谜是人类科学的一大探索,古往今来,为了探索月亮的奥秘,人类付出了巨大的努力.月亮的十大未解之谜你都有了解过吗?今天小编给大家准备了月亮的十大未解之谜. ...
- 很多未解之谜终于有答案了——2018年JVM生态系统报告出炉
在Java开发者中,一直存在着很多鄙视链.如: IntelliJ → Eclipse → NetBeans Unix → Linux → Mac OS→ Windows → DOS Emacs → V ...
- 2017互联网十大未解之谜,你能回答几个?
0关注「实验楼」,每天分享一个项目教程 互联网行业发生许多重大事件,比如微信小程序上线.顺丰菜鸟互撕.共享单车接连倒闭.乐视危机发酵.无人超市崛起.求职少年李文星之死.京东腾讯入股唯品会等.在互联网的 ...
- 深度丨AI界的七大未解之谜:OpenAI丢出一组AI研究课题
今天,OpenAI在官方博客上丢出了7个研究过程中发现的未解决问题. OpenAI希望这些问题能够成为新手入坑AI的一种有趣而有意义的方式,也帮助从业者提升技能. OpenAI版AI界七大未解之谜,现 ...
- AI界的七大未解之谜:OpenAI丢出一组AI研究课题
来源:三体智讯 今天,OpenAI在官方博客上丢出了7个研究过程中发现的未解决问题. OpenAI希望这些问题能够成为新手入坑AI的一种有趣而有意义的方式,也帮助从业者提升技能. OpenAI版AI界 ...
- 难道这又是个未解之谜?--- 关于DLL中使用ADODATASET出错的问题
难道这又是个未解之谜?--- 关于DLL中使用ADODATASET出错的问题 Delphi / Windows SDK/API http://www.delphi2007.net/DelphiAPI/ ...
- 一个常见的物理现象,直今还是未解之谜!
全世界只有3.14 % 的人关注了 爆炸吧知识 在我们的日常生活中存在着很多有趣的物理现象, 科学家对这些现象进行深入研究后,可以通过这些现象延伸,从而在前沿科技发展上得到很大的帮助,甚至去解决宇宙中 ...
- 山东科技大学c语言完全题库,“山东科技大学十大未解之谜”之完全解答
"山东科技大学十大未解之谜"之完全解答 (2012-04-24 13:53:36) 标签: 娱乐 当我还是一枚小正太刚刚进入山科大的时候,我就看到过这些未解之谜,现在每每看到童鞋们 ...
最新文章
- [elk]kafka_elk
- 人员信息管理系统练习
- [转]Windows Shell 编程 第十三章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7988004】...
- 前端学习(1881)vue之电商管理系统电商系统之双层for循环渲染数据
- VMware虚拟机下安装Ubuntu16.04镜像完整教程
- 图片服务 - thumbor安装
- 泰森中国宣布与阿里云达成战略合作
- 【解决方案】: hyper-v 导入虚拟机报这个错误 32784
- 存款100万能退休了吗?
- 手机压缩包删除有什么后果?
- file_put_contents记录的日志内容丢失
- jar脱壳_软件脱壳 - Rannie` - 博客园
- redis 持久化和恢复
- 聚观早报 | 嘀嗒出行重启赴港IPO;饿了么到店业务将与高德合并
- c语言——输入一个字符串,将其逆序输出
- 机器学习:非负矩阵分解(NMF)
- 埃及通信和信息技术部使用 OpenText ECM 内容服务平台为电子政务转型奠定基础
- java判断唯一性_java 后台验证数据唯一性
- 『往事』之---我的童年少年时代
- 前端必备工具大全------强推!!!
热门文章
- 关于 Cypress 同界面元素交互的讨论
- SAP Spartacus category在breadcrumb里显示不正确的一个问题
- SAP WebClient UI overview页面里assignment block的可见性分析技巧
- JDK安全证书的一个错误消息 No subject alternative names present的解决办法
- SEGW activation check bypass via debugging
- SAP Cloud for Customer根据模型某字段进行OData的搜索操作
- ComponentBase.createMetaData and manifest.json oRoute
- SAP UI5里的senderActive标志位
- 如何通过Fiori后台调试的方式找到gateway系统的ID
- SAP Leonardo机器学习如何获取模型存储的实际地址