MySQL进阶——索引使用规则

在上篇文章我们学习了MySQL进阶——索引,这篇文章学习MySQL进阶——索引使用规则。

索引使用规则

在使用索引时,需要遵守一些使用规则,否则索引会部分失效或全部失效。

最左前缀法则

最左前缀法则是查询从索引的最左列开始,并且不跳过索引中的列。

当一个索引关联了多个字段(联合索引)时,要遵守最左前缀法则,如果跳跃某一列,索引将部分失效(后面的字段索引失效)。

例如我们现在有如下联合索引,

上面的联合索引Phone字段的Seq_in_index为1,则编写查询条件时,Phone条件必须存在。

按照Seq_in_index的顺序来编写查询条件:

可以发现成功使用了联合索引,且每少一个条件字段,所用到的索引长度也会减少。

当Seq_in_index为1的索引字段没有在查询条件时,索引将失效,也就是查询语句不使用索引,如下图所示:

当缺少Seq_in_index非1的索引字段时,部分索引失效,如下图所示:

范围查询

联合索引中,假如出现了范围查询(>,<)时,范围查询右侧的索引字段失效,如下图所示:

索引字段不能运算

不能对索引字段进行运算,否则索引失效,如下图所示:

字符串不加引号

在索引字段的类型为字符类型时,查询条件不加引号时,索引也会失效,如下图所示:

模糊查询

如果仅仅是尾部模糊匹配时,索引不会失效,如果是头部模糊匹配时,索引失效。

or连接的条件

用or分割的条件,如果or前的条件中的列有索引,而后面的列中没有索引,那么涉及的索引不会被用到。

MySQL评估

如果MySQL评估觉得使用索引比全表更慢,则不使用索引。

例如:这里的手机号都是1开头的,查询手机号大于等于10000000000、手机号大于等于20000000000的SQL语句使用索引情况完全不同,如下图所示:

指定索引

当查询条件的字段既有联合索引,又有单列索引时,MySQL会自动选择使用一个索引,如下图所示:

可以看到可能用的索引有两个,实际只用了一个索引。

这时我们可以通过SQL提示,通过use、ignore、force指定SQL语句使用、忽略和必须使用哪个索引,其用法如下:

select * from 表名 use index(索引名) where 字段条件;   # 使用索引,MySQL可能会忽略,使用其他索引
select * from 表名 ignore index(索引名) where 字段条件;  # 忽略索引,不使用该索引
select * from 表名 force index(索引名) where 字段条件;       # 强制使用索引

示例如下图所示:

覆盖索引

在SQL查询语句中尽量返回设置了索引的字段,减少select * 的使用,例如:索引相关的字段有ID、Phone、Email、Age中,那么返回的字段尽量只返回ID、Phone、Email、Age,如下图所示:

当我们返回了一个和索引无关的字段,不会有额外的信息,如下图所示:

一般有额外信息的查询效率更好。

好了,MySQL进阶——索引使用规则就学到这里了。

公众号:白巧克力LIN

该公众号发布Python、数据库、Linux、Flask、Django、自动化测试、Git、算法、前端、服务器等相关文章!

- END -

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在 Windows 7 中安装 .NET Framework 时遇到错误:无法建立到信任根颁发机构的证书链

当全新安装 Windows 7 SP1 后&#xff0c;在未安装任何补丁&#xff0c;也未进行联网的状态下&#xff0c;安装 .NET Framework 4.6/4.7 或更高的版本时&#xff0c; 应该会遇到错误提示&#xff1a;无法建立到信任根颁发机构的证书链。 解决方法 1.下载证书 地址&#xff1…

电脑屏幕监控软件有哪些:5款好用的电脑屏幕监控软件(宝藏篇)

什么是电脑屏幕监控软件&#xff1f; 电脑屏幕监控软件是一种专业的应用软件&#xff0c;主要用于远程或本地监控局域网&#xff08;LAN&#xff09;内其他电脑的屏幕显示和操作活动。 这类软件通常由两部分组成&#xff1a;一个是安装在监控者电脑上的主控端&#xff08;或称…

Serverless 使用OOS将http文件转存到对象存储

目录 背景介绍 系统运维管理OOS 文件转存场景 前提条件 实践步骤 附录 示例模板 背景介绍 系统运维管理OOS 系统运维管理OOS&#xff08;CloudOps Orchestration Service&#xff09;提供了一个高度灵活和强大的解决方案&#xff0c;通过精巧地编排阿里云提供的OpenAPI…

短视频评论截取提取软件技术思路

关于开发短视频评论所需要用到得技术第一篇 前言&#xff1a;根据业务需要&#xff0c;我们需要通过短视频找到准客户&#xff0c;这个软件应该是叫短视频评论提取软件&#xff0c;或者是短视频评论采集。无所谓叫什么都可以 进入正题。 第一篇只讲解所应该用到得基础工作 一…

通过龙讯旷腾PWmat发《The Journal of Chemical Physics》 :基于第一性原理分子动力学热力学积分的离子溶剂化自由能计算

背景导读 离子溶解是电化学中一个重要的过程。电化学反应中许多重要的参数&#xff0c;例如电化学还原电位、无限稀释活度系数、亨利定律溶解常数和离子溶解度等&#xff0c;都与离子的溶剂化能有关。然而&#xff0c;由于测量技术和数据处理的困难&#xff0c;离子溶剂化能的…

GIGE 协议摘录 —— GVSP 协议(三)

系列文章目录 GIGE 学习笔记 GIGE 协议摘录 —— 设备发现&#xff08;一&#xff09; GIGE 协议摘录 —— GVCP 协议&#xff08;二&#xff09; GIGE 协议摘录 —— GVSP 协议&#xff08;三&#xff09; GIGE 协议摘录 —— 引导寄存器&#xff08;四&#xff09; GIGE 协议…

【管理咨询宝藏127】大型集团人力资源体系核心能力提升设计方案

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏127】大型集团人力资源体系核心能力提升设计方案 【格式】PDF版本 【关键词】人力咨询、人才体系、核心能力打造 【核心观点】 - 集团经过30年的…

查询SQL:文章浏览1

问题描述 请查询出所有浏览过自己文章的作者 结果按照 id 升序排列。 查询结果的格式如下所示&#xff1a; 题目分析&#xff1a; 这题主要考察排序asc&#xff08;升序&#xff09;、desc&#xff08;降序&#xff09;以及distinct字段。 解决方案&#xff1a; select DIS…

白酒:茅台镇白酒的丰富历史与文化传承

茅台镇&#xff0c;位于中国贵州省仁怀市&#xff0c;是中国著名的白酒产区&#xff0c;以其得天独厚的自然环境和与众不同的酿造工艺而闻名于世。作为茅台镇的白酒品牌之一&#xff0c;云仓酒庄豪迈白酒承载着丰富的历史与文化传承。 茅台镇的历史可以追溯到汉代&#xff0c;当…

一套java开发的(未来工厂核心MES系统成品源码)技术架构:java+springboot 支撑多端管理,可商用

MES定义为“位于上层的计划管理系统与底层的工业控制之间的面向车间层的管理信息系统” 20世纪90年代初期&#xff0c;中国就开始对MES以及ERP的跟踪研究、告知或试点&#xff0c;而且曾经发言 “管控一体化”&#xff0c;“人、财、物、产、供、销”等颇具中国独具一格的CIMS、…

Intel VT-x怎么开启?如何解决VMware打开虚拟机报错问题?

许多小伙伴在安装完VMware不能打开虚拟机&#xff0c;每次打开都会出现一个“此主机支持 Intel VT-x&#xff0c;但 Intel VT-x 处于禁用状态”的报错&#xff0c;然后因此启动不了虚拟机。今天小编就带来如何解决这个报错的方法。 什么是Intel VT-x&#xff1f; 这是英特尔cp…

代理记账公司的标准,理解并遵循业务流程和道德规范

代理记账公司的存在是为了帮助企业管理和报告他们的财务信息&#xff0c;他们为企业的各种交易提供会计服务&#xff0c;并确保企业遵守所有相关的法规和准则&#xff0c;这些公司需要严格地符合一些标准以维持良好的声誉和服务质量。 代理人必须拥有适当的证书和执照&#xff…

GIGE 协议摘录 —— GVCP 协议(二)

系列文章目录 GIGE 学习笔记 GIGE 协议摘录 —— 设备发现&#xff08;一&#xff09; GIGE 协议摘录 —— GVCP 协议&#xff08;二&#xff09; GIGE 协议摘录 —— GVSP 协议&#xff08;三&#xff09; GIGE 协议摘录 —— 引导寄存器&#xff08;四&#xff09; GIGE 协议…

经典神经网络(10)PixelCNN模型、Gated PixelCNN模型及其在MNIST数据集上的应用

经典神经网络(10)PixelCNN模型、Gated PixelCNN模型及其在MNIST数据集上的应用 1 PixelCNN PixelCNN是DeepMind团队在论文Pixel Recurrent Neural Networks (16.01)提出的一种生成模型&#xff0c;实际上这篇论文共提出了两种架构&#xff1a;PixelRNN和PixelCNN&#xff0c;两…

【LeetCode算法】第110题:平衡二叉树

目录 一、题目描述 二、初次解答 三、官方解法 四、总结 一、题目描述 二、初次解答 1. 思路&#xff1a;从上而下访问二叉树的节点&#xff0c;递归判定当前节点的左子树和右子树的高度差是否为0、-1或1&#xff0c;从而判定其是否是平衡二叉树。 2. 代码&#xff1a; int…

【Web API DOM11】节点操作

一&#xff1a;DOM节点 1 什么是DOM节点 DOM树里每一个内容都称为节点 2 DOM节点分类 元素节点 属性节点&#xff1a;a标签的href、img标签的src等 文本节点&#xff1a;标签中的文字 上图为整个DOM树&#xff0c;每个标签、以及标签属性、文本内容构成了DOM树 二&#…

代码随想录算法训练营day43

题目&#xff1a;1049. 最后一块石头的重量 II 、494. 目标和、474.一和零 参考链接&#xff1a;代码随想录 1049. 最后一块石头的重量 II 思路&#xff1a;本题石头是相互粉碎&#xff0c;粉碎后剩下的重量就是两块石头之差&#xff0c;我们可以想到&#xff0c;把石头分成…

从零开始手把手Vue3+TypeScript+ElementPlus管理后台项目实战四(引入Axios,并调用第一个接口)

RealWorld接口综述 本项目调用的是RealWorld项目的开放接口。 接口文档如下&#xff1a; https://main--realworld-docs.netlify.app/docs/specs/backend-specs/endpoints https://main--realworld-docs.netlify.app/docs/specs/frontend-specs/swagger RealWorld 是一个适…

Day45 代码随想录打卡|二叉树篇---路径总和

题目&#xff08;leecode T112&#xff09;&#xff1a; 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;…

LeetCode刷题之HOT100之最小路径和

2024/6/7 今天天气转晴&#xff0c;将栀子花移动到二楼阳台&#xff0c;愿它好&#xff01;昨天准备做完这题再回去&#xff0c;太晚了感觉很疲惫&#xff0c;做不下去&#xff0c;今天早上来把它做了。 1、题目描述 2、逻辑分析 昨天上午做过一个跳格子的题目&#xff0c;也…