MySQL联合查询、最左匹配、范围查询导致失效

服务器版本
在这里插入图片描述
客户端:navicat premium16.0.11

联合索引

假设有如下表
在这里插入图片描述

  • 联合索引就是同时把多列设成索引,如(empno,ename)
  • 在查询的时候就会先按照empno进行查询,再按照ename进行查询
  • 其中empno是全局有序,ename是局部有序。什么意思呢?
    - B+树在构建的时候,由于联合索引遵循最左匹配原则,所以,按照从左往右的优先级进行选择,那么当遇到empno相同的时候,就会按照ename进行匹配。
    - 在这个过程中,ename只有在empno相同的时候才会进行匹配,那么他在之前就没有必要排序,在empno相同的时候有序即可。

最左匹配原则

  • 如果SQL 语句中用到了联合索引中的最左边的索引,那么这条 SQL 语句就可以利用这个联合索引去进行匹配,用上例(empno,ename)举例,只有当查询中where 后面出现empno,即联合索引中最左边的列,才会使用联合查询,单单使用where ename=×××是不会用到联合索引的
  • 注意! 当遇到范围查询(比如>、<、between、like)就会停止匹配。

小林coding中的实验结论不一致

  • 注意!在小林coding中说到,关于范围查询对联合索引的影响对于 >=、<=、BETWEEN、like 前缀匹配的范围查询,并不会停止匹配。并且给出了他的实验结果,但是在我自己的实验结果下,以上范围查询全部失效了,所以这个什么情况失效什么情况不失效,也是个迷,我还没搞清楚。
  • 实验结果就不贴了,就是设计好了表然后用navicat看执行结果解释中的type,key,key_len等字段,小林coding中有贴图演示

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

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

相关文章

flink中处理kafka分区的消息顺序

背景 kafka分区的消息是有序的&#xff0c;那么flink在消费kafka分区的时候消息的顺序是怎么样的呢&#xff1f;还能保持这个有序性吗&#xff0c;本文就来记录下 flink消费kafka分区的顺序性 从上图可知&#xff0c;flink的转换算子比如map&#xff0c;flatMap&#xff0c;f…

IntelliJ IDEA 之初体验

文章目录 第一步&#xff1a;下载与安装 IntelliJ IDEA1&#xff09;官网下载2&#xff09;选择那种安装包3&#xff09;开始下载4&#xff09;解压 第二步&#xff1a;启动 IntelliJ IDEA第三步&#xff1a;创建第一个 Java 项目第四步&#xff1a;运行第一个 Java 程序1&…

代理服务器的IP和端口是什么意思?

代理服务器的地址和端口&#xff1a;基础概念解析 如果我们将其与在互联网发明之前我们的老一辈之间用于交流的经典书信进行类比&#xff0c;那么地址就相当于信封上的寄件人地址&#xff0c;而端口就相当于收信人地址。然而&#xff0c;与传统信件不同&#xff0c;这里需要确切…

【力扣100】 3.最长连续序列

题目链接 class Solution:def longestConsecutive(self, nums: List[int]) -> int:# 先排序&#xff0c;然后遍历元素&#xff0c;r1&#xff0c;然后r在max(temp&#xff0c;r)选择最大的if len(nums)0:return 0# 先set再排序# my_setset(nums)# my_listlist(set(nums))my…

设计一算法,对单链表实现就地逆置

对单链表逆置&#xff0c;要联想到单链表的头插性质 举个例子&#xff1a;现在有一个空链表&#xff0c;我们依次对它进行头插123 那么形成的链表是321&#xff0c;这样就形成了逆置 //单链表就地逆置 //思路&#xff1a;把原表接到一个新表上&#xff0c;然后对原表进行头插 …

【Linux】冯诺依曼体系结构(硬件)、操作系统(软件)、系统调用和库函数 --- 概念篇

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和Linux还有算法 ✈️专栏&#xff1a;Linux &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 …

logback整合rabbitmq实现消息记录日志

logback.xml文件配置 <!-- 配置rabbitmq的信息&#xff0c;数据取值yml --><springProperty name"rabbitmqHost" source"spring.rabbitmq.host"/><springProperty name"rabbitmqPort" source"spring.rabbitmq.port"/&g…

封装请求头内容格式

// 请求头-内容类型 export const ContentType { JSON: application/json;charsetUTF-8, FORM: application/x-www-form-urlencoded;charsetUTF-8, UPLOAD: multipart/form-data, STREAM: application/octet-stream;charsetUTF-8 } /** * description: 文件上传 * param {*}…

java多人聊天

服务端 package 多人聊天;import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList;…

在windows下编译libiconv库

libiconv是一个基于GNU协议的开源库,主要用于解决多语言编码处理转换等应用问题。在linux系统使用比较方便,但是windows下使用需要进行源码编译。这里我是使用libiconv的1.15版本源码和VS2019默认工具集配置进行编译。 首先需要用VS2019创建一个空项目,根目录为libiconv。 在…

Nero刻录光盘软件-极好用

目录 一、下载Nero 二、软件安装 三、刻录数据 前言 刻录之前准备一张新的光盘&#xff0c;之前一旦使用过&#xff0c;就无法刻录&#xff0c;一定要新的光盘。 一、下载Nero nero官网下载地址&#xff1a;Nero下载 csdn免费下载地址&#xff1a;https://download.csdn.…

springboot引入swagger2

1&#xff0c;pom文件里引入swagger-ui依赖 <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.7.0</version></dependency><dependency><groupId>io.spring…

迈向成功:解读新能源汽车企业竞争优势策略

尽管受汽车“缺芯”、疫情等因素的制约&#xff0c; 新能源汽车 的销量表现仍非常亮眼。我国新能源汽车行业从起初的政策驱动&#xff0c;逐步进入“成本技术”驱动阶段&#xff1b;动力电池为核心环节&#xff0c;呈现“一超多强”格局&#xff0c;整车厂行业格局远未形成。新…

TCP实现一对一聊天

一&#xff0c;创建类 二&#xff0c;类 1.ChatSocketServer类 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Sca…

若依框架 前台自己获取登录用户信息

这个方法其实只能获取到用户名称&#xff0c;获取不到用户id&#xff0c;不知道官方文档写了但是没有是个什么意思 const userid this.$store.state.user.userId;const username this.$store.state.user.name 1.获取用户id 在src包下找到store&#xff0c;modules下的user…

visionOS空间计算实战开发教程Day 11 标题动画

本文我们要在visionOS内实现一个标题输出的动画效果。主要讲​​ViewModifier​​​协议&#xff0c;修饰符&#xff08;modifier&#xff09;应用于视图或另一个视图修饰符&#xff0c;生成原值的另一个版本。在希望创建一个可应用于不同视图的修饰符时可实现​​ViewModifier…

docker基本管理和docker相关概念

docker是开源的的应用容器引擎&#xff0c;基于go语言开发的&#xff0c;运行在linux系统当中的开源的轻量级的"虚拟机。 docker的容器技术可以在一台主机上轻松的为任何应用创建一个轻量级的&#xff0c;可以移植的&#xff0c;自给自足的容器 docker的宿主机是linux系…

[Unity数据管理]自定义菜单创建Unity内部数据表(ScriptableObject)

Unity 在开发的时候如果数据量比较大&#xff0c;或者一部分数据需要存在云端&#xff0c;那么就需要一些数据库 轻量型到大型的包括&#xff1a; 数组-内存存储读取 列表-内存存储读取 List<T> tList new List<T>(); XML-硬盘存储读取 JSON-硬盘存储读取 …

YoloV5改进策略:UniRepLKNet,大核卷积的最新成果,轻量高效的首选(全网首发)

摘要 将UniRepLKNet应用到YoloV5的改进中,经过测试,涨点明显,运算量也有下降! 论文:《UniRepLKNet:用于音频、视频、点云、时间序列和图像识别的通用感知大内核ConvNet》 https://arxiv.org/abs/2311.15599 大核卷积神经网络(ConvNets)最近受到了广泛的研究关注,但存…