MySQL is null 走不走索引?

news2024/9/22 19:43:25

网上很多的说法,都是说不能走索引。但其实是错误的。
其实也是又可能走索引的。
比如,select * from table where a = xxx or a is null;
通过explain 看这条sql的执行计划,type = ref_or_null,这条sql语句会查询两次,第一次按照查询 a = xxx,第二次再单独查询 a is null
为了更好的利用索引,索引列字段要设置为 NOT NULL 约束。有两个原因:
● 第一原因:索引列存在 NULL 就会导致优化器在做索引选择的时候更加复杂,更加难以优化,因为可为 NULL 的列会使索引、索引统计和值比较都更复杂,比如进行索引统计时,count 会省略值为NULL 的行。
● 第二个原因:NULL 值是一个没意义的值,但是它会占用物理空间,所以会带来的存储空间的问题,因为 InnoDB 存储记录的时候,如果表中存在允许为 NULL 的字段,那么行格式(opens new window)中至少会用 1 字节空间存储 NULL 值列表,如下图的紫色部分:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/547225.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

带拉绳的按钮

看看效果&#xff1a; 再上代吗&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><script src"https://unpkg.co/gsap3/dist/gsap.min.js"></scr…

可视区域兼容性问题的思考及方法封装

今日在复习可视化尺寸获取时突发奇想&#xff0c;为什么要在怪异模式下使用document.body.clientWidth&#xff0c;在标准模式下使用document.documentElement.clientWidth&#xff1f;以及是否在IE8及以下的版本中其中一个获取方式将返回undefined或0。  出于该问题的思考&am…

C++的cin详解

2023年5月20日&#xff0c;周六早上&#xff1a; 我发现我找不到非常详细的cin类的成员函数&#xff0c;只好自己写了。 不定期更新。 cin的继承关系 cin类继承自istream类&#xff0c;ostream类继承自ios类&#xff0c;ios类继承自ios_base类 cin类拥有的所有成员函数 1. …

【算法题】2352. 相等行列对

插&#xff1a; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家一起学习鸭~~~ 题目&#xff1a; 给你一个下标从 0 开始、大小为 n …

ChatGPT 推出 iOS 应用,支持语音输入,使用体验如何?

最近&#xff0c;OpenAI 宣布推出官方 iOS 应用&#xff0c;允许用户随时随地访问其高人气 AI 聊天机器人&#xff0c;此举也打破了近几个月内苹果 App Store 上充斥似是而非的山寨服务的窘境。 该应用程序是 ChatGPT 的首个官方移动应用程序。ChatGPT 软件程序在去年推出后迅速…

Inertial Explorer处理pospac数据总结

Inertial Explorer处理pospac数据的过程包括&#xff1a;1&#xff09;从pospac提取出gps数据和imu数据&#xff1b;2&#xff09;gps数据转成rinex格式&#xff1b;3)imu数据转成imr格式&#xff1b;4&#xff09;IE对gps数据进行PPP解算&#xff1b;5&#xff09;紧耦合融合解…

帆软FineReport之版本升级

最近有个需求是将帆软报表版本从9升级到10&#xff0c;记录升级过程&#xff0c;方便备查。 前置条件&#xff1a;服务器上帆软10部署成功 版本区别 fineReport 9.0 http://IP:Port/WebReport/ReportServer?reportletabc.cpt fineReport 10.0 http://IP:Port/webroot/decision…

biopython: runningtime:generator didnot stop after throw

在运行某个蛋白【3NPS】的时候出现报错: 代码: parse=PDBParse(QUIET=True) structure=parser.get_structure(X,pdb) 报错: runningtime:generator didnot stop after throw 解决: (1)检查是否biopython版本和python 版本不一致: Biopython 支持多个 Python 版本…

第一章:VMware 虚拟机安装

Linux 的开发需要在 Linux 系统下进行&#xff0c;这就要求我们的 PC 主机安装 Linux 系统&#xff0c;本篇我 们选择 Ubuntu 这个 Linux 发行版系统。本篇讲解如何安装虚拟机&#xff0c;以及如何在虚拟机中安装 Ubuntu 系统&#xff0c;安装完成以后如何做简单的设置。如…

Android大作业(三)——修改应用图标

Android大作业&#xff08;三&#xff09;——修改应用图标 系列文章目录前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 在Android studio开发安卓应用时&#xff0c;工程中带有默认应用图标。安卓的图标有圆角、方形、高低像素的不同版本&#x…

这就是冒泡排序,像可乐中的气泡滋滋向上冒一样(44)

小朋友们好&#xff0c;大朋友们好&#xff01; 我是猫妹&#xff0c;一名爱上Python编程的小学生。 和猫妹学Python&#xff0c;一起趣味学编程。 今日主题 什么是冒泡排序&#xff1f; 用Python写段代码&#xff0c;实现冒泡排序。 冒泡排序 冒泡排序(Bubble Sort)是一种…

springboot+jsp高校社交校友交流平台的设计与实现

在学校里我们结识了很多朋友。当我们毕业离校走上各自的人生道路&#xff0c;这份友谊将成为宝贵的人生精神财富。但世事变迁&#xff0c;或许我们原本留下的联系方式已经不能再用&#xff0c;使得朋友之间失去联系&#xff0c;更别提相聚&#xff0c;这份精神财富也将丢失。这…

一文会用断码屏

断码屏的使用 1、断码屏显示文字原理 我理解应该是偏压原理达到显示效果的。 LCD驱动分为A型、B型&#xff0c;如果LCD偏压类型为C型&#xff0c;固定为 1/3 偏压。 由数据手册得知&#xff0c;以下&#xff1a; LCD 驱动器提供的 COM 和 SEG 输出数目&#xff0c;以及偏压…

【运维知识进阶篇】集群架构-Nginx四层负载均衡详解

四层负载均衡含义及应用场景 四层负载均衡是基于传输层协议包来封装的&#xff08;如&#xff1a;TCP/IP&#xff09;&#xff0c;那我们介绍的的七层是指的应用层&#xff0c;他的组装在四层的基础之上&#xff0c;无论四层还是七层都是指的OSI网络模型。我们之前介绍了七层负…

LabVIEWCompactRIO 开发指南24 第5章通过LabVIEW FPGA定制硬件

LabVIEWCompactRIO 开发指南24 第5章通过LabVIEW FPGA定制硬件 本章将介绍了一些练习&#xff0c;以及使用LabVIEW FPGA模块和CompactRIO开发高性能控制和监测系统的高级技巧和技巧。它介绍了推荐的编程实践、避免常见错误方法以及创建快速、高效且可靠的LabVIEW FPGA应用程序…

什么是跨链交易?

每个区块链都是一个完整的数字环境&#xff0c;其中所有应用程序都通过底层网络连接。但随着区块链网络的不断增加&#xff0c;以及区块链之间缺乏连接&#xff0c;人们对跨链基础设施的需求越来越高&#xff0c;以提供用户在多个区块链网络之间的互操作性。 没有跨链基础设施&…

23种设计模式之享元模式(Flyweight Pattern)

前言&#xff1a;大家好&#xff0c;我是小威&#xff0c;24届毕业生&#xff0c;在一家满意的公司实习。本篇文章将23种设计模式中的享元模式&#xff0c;此篇文章为一天学习一个设计模式系列文章&#xff0c;后面会分享其他模式知识。 如果文章有什么需要改进的地方还请大佬不…

【SAM系列】SAM Enhanced Pseudo Labels for Weakly Supervised Semantic Segmentation

论文链接&#xff1a;https://arxiv.org/abs/2305.05803 论文代码&#xff1a;https://github.com/cskyl/sam_wsss 目的 探索如何结合SAM在image-level supervision下改善WSSS的性能 结论 可以在 seed maks&#xff0c;pseudo label&#xff0c;prediction三处结合SAM来改善…

opencv图像分割

图像分割是指把一个图像分成不同的部分&#xff0c;用来处理图像的技术。在计算机视觉中&#xff0c;图像分割是指将图像从背景中分离出来的技术&#xff0c;或称目标检测或目标识别。分割后的结果是将不同区域划分为不同的像素。 在很多情况下&#xff0c;需要对一幅图像进行分…

深度相机如何标定?(代码开源)

文章&#xff1a;Robust Intrinsic and Extrinsic Calibration of RGB-D Cameras 作者&#xff1a;Filippo Basso, Emanuele Menegatti, and Alberto Pretto. 编译&#xff1a;点云PCL 代码&#xff1a; https://github.com/iaslab-unipd/rgbd_calibration 欢迎各位加入知识星球…