黑马程序员索引学习笔记
文章目录
- 索引的分类
- 从索引字段特性
- 从物理存储
- 从数据结构
- 组成索引的字段个数
- InnoDB主键索的B+tree高度为多高呢?
- explain执行计划
- 最左匹配原则
- 索引失效情况
- SQL提示
- 覆盖索引、回表查询
- 前缀索引
- 索引设计原则
索引的分类
从索引字段特性
主键索引、唯一索引、常规索引、全文索引

从物理存储
聚簇(集)索引、二级索引

从数据结构
B+树索引、Hash索引、全文索引
| InnoDB | MyISAM | Memory | |
|---|---|---|---|
| B+ tree索引 | Yes | Yes | Yes |
| Hash索引 | No | No | Yes |
| Full-text索引 | Yes | Yes | No |
组成索引的字段个数
单列索引、联合索引
InnoDB主键索的B+tree高度为多高呢?

图片中n表示主键个数,n+1表示指针数量。
explain执行计划

最左匹配原则
- 如果索引了多列(联合索引),要遵守最左前缀法则。
- 最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列。
- 如果跳跃某一列,索引将部分失效(后面的字段索引失效)。
- 范围查询(不含等于)后面的字段不走索引。
注:查询字段存在即可和sql顺序无关
索引失效情况
- 在索引字段上进行运算
explain select * from tb_user where substring(phone, 10, 2) = '15';
- 字符串类型字段使用时,不加引号
-- 此处phone的值没有加引号
desc select * from tb_user where phone = 17799990015;
- 头部模糊查询(即%在前面)匹配
-- 此处%在前面
explain select * from tb_user where profession like '%工程';
- 用or分割开的条件,其中某一列没有索引,那么涉及的索引都不会被用到。
-- 必须id和name都有索引,才可以用到索引
desc select * from t_achievement_application where id = 66 or name = '张三';
- 如果MySQL评估使用索引比全表更慢,则不使用索引。(参考范围查询、is null、is not null)
is null、is not null是否走索引取决于表中的数据分布。
SQL提示

其中 use是建议MySQL用这个索引
覆盖索引、回表查询
尽量使用覆盖索引(查询使用了索引,并且需要返回的列,在该索引中已经全部能够找到),减少select *。
Extra列描述
NULL: 需要回表查询
using index condition : 查找使用了索引,但是需要回表查询数据
using where; using index : 查找使用了索引,但是需要的数据都在索引列中能找到,所以不需要回表查询数据

username、password建立联合索引,避免回表查询。
前缀索引

索引设计原则

相关文章:
黑马程序员索引学习笔记
文章目录 索引的分类从索引字段特性从物理存储从数据结构组成索引的字段个数 InnoDB主键索的Btree高度为多高呢?explain执行计划最左匹配原则索引失效情况SQL提示覆盖索引、回表查询前缀索引索引设计原则 索引的分类 从索引字段特性 主键索引、唯一索引、常规索引、全文索引…...
新手如何对一个web网页进行一次渗透测试
新手如何对一个web网页进行一次渗透测试 文章目录 新手如何对一个web网页进行一次渗透测试什么是渗透测试?渗透测试和红蓝对抗的区别那么拿到一个网站后如何进行一次优雅的渗透测试呢 什么是渗透测试? 在获得web服务运营的公司书面授权的情况下,模拟攻击者的行为…...
vs2019 - MFC对话框程序的工程名称不支持下划线命名法
文章目录 vs2019 - MFC对话框程序的工程名称不支持下划线命名法概述笔记备注END vs2019 - MFC对话框程序的工程名称不支持下划线命名法 概述 正在写账单分析程序, 用MFC 对话框. 因为比较习惯下划线命名法, 就在向导中给工程名称起了一个my_test这样的名称(下划线命名法, 小…...
java JDBCUtils 使用静态代码块连接数据库 全程值保持一次连接
\src\com\data\entity\JDBCUtils.java 使用静态代码块连接数据库 全程值保持一次连接 package com.data.entity;import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.DriverManagerDataSource;import javax.sql.DataSource;pub…...
剑指 Offer(第2版)题解(C++ Version)
剑指 Offer(第2版)题解(C Version) 剑指 Offer(第2版)题解(C Version)面试题 3:数组中重复的数字面试题 4:二维数组中的查找面试题 5:替换空格面试…...
6.15合并二叉树(LC617-E)
算法: 前序、中序、后序都可以,这道题正常逻辑一般都是用前序 正确代码: 这里就是在root1这颗树上改的,也可以新建一个树。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode …...
百度智能小程序系统源码+关键词排名优化 附带完整的搭建教程
百度智能小程序系统的开发背景是基于百度强大的技术实力和对用户需求的深入理解。在移动互联网时代,用户对便捷、高效、智能的服务需求越来越高。而小程序作为一种轻量级的应用程序,恰好能够满足用户的这些需求。然而,开发一个小程序需要掌握…...
2019年11月7日 Go生态洞察:Go Modules v2及更高版本
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...
vue3通过provide和inject实现多层级组件通信
父组件 <template><div><h1>我是父组件 {{num}}</h1><hr><child></child></div> </template><script setup> import child from ./child.vue; import { ref,provide } from vue; let num ref(520) provide(pare…...
【Java学习笔记】72 - 满汉楼 - 餐饮管理系统
项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter26 一、需求说明 满汉楼项目功能多,界面复杂,涉及到复杂的awt和swing技术和事件编程,做如下调整: 1.去掉界面和事件处理(工作中使用很少),使…...
【我的创作纪念日】
机缘 大家好,我是圥忈ゼ, 2023 年 07 月 20 日,我撰写了第 1 篇技术博客:《我的编程未来规划》,也是由于我高考后的专业选择,和就业方向的选择,加上想立志成为一名专业 IT 作者,我结…...
车载通信架构 —— 传统车内通信网络MOST总线(光纤传输、专精多媒体)
车载通信架构 —— 传统车内通信网络MOST总线(光纤传输、专精多媒体) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都…...
使用Pytorch从零开始构建Energy-based Model
知识回顾: [1] 生成式建模概述 [2] Transformer I,Transformer II [3] 变分自编码器 [4] 生成对抗网络,高级生成对抗网络 I,高级生成对抗网络 II [5] 自回归模型 [6] 归一化流模型 [7] 基于能量的模型 [8] 扩散模型 I, 扩散模型 II 在本教程中…...
基于C#实现梳排序
为什么取名为梳,可能每个梳都有自己的 gap 吧,大梳子 gap 大一点,小梳子 gap 小一点。上一篇我们看到鸡尾酒排序是在冒泡排序上做了一些优化,将单向的比较变成了双向,同样这里的梳排序也是在冒泡排序上做了一些优化。 …...
盘点72个Android系统源码安卓爱好者不容错过
盘点72个Android系统源码安卓爱好者不容错过 学习知识费力气,收集整理更不易。 知识付费甚欢喜,为咱码农谋福利。 链接:https://pan.baidu.com/s/1qiWeLjF2i4dlgmTYgPPSvw?pwd8888 提取码:8888 项目名称 A keyboardlisten…...
nodejs+vue+elementui足球篮球联赛系统
系统主要是以后台管理员管理为主。管理员需要先登录系统然后才可以使用本系统,管理员可以对个人中心、用户管理、赛事信息管理、球队信息管理、球员信息管理、比赛分值板管理、系统管理等进行添加、查询、修改、删除,以保障足球联赛管理系统的正常运行。…...
18.Oracle的过程和函数
oracle11g的过程和函数 一、过程(Procedure)1、子程序2、过程的相关语法 二、函数(Function)1、函数的概念2、函数的创建3、 案例 在Oracle数据库中,过程和函数都是用来封装一系列SQL语句和逻辑操作的数据库对象&#…...
A JSONObject text must begin with ‘{‘ at 1 [character 2 line 1]
今天调用一个接口,返回的是json数据,但是拿到数据进行转换的报错, JSONObject resultJson new JSONObject(resuStr);报错信息是: Exception in thread "main" org.json.JSONException: A JSONObject text must begin …...
C#中openFileDialog控件的使用方法
目录 一、OpenFileDialog基本属性 二、使用 OpenFile 从筛选的选择中打开文件 1.示例源码 2.生成效果 3. 其它示例 三、使用 StreamReader 以流的形式读取文件 1.示例源码 2.生成效果 四、一种新颖的Windows窗体应用文件设计方法 在C#中,OpenFileDialog控件…...
多线程04 死锁,线程可见性
前言 前面我们讲到了简单的线程安全问题以及简单的解决策略 其根本原因是cpu底层对线程的抢占式调度策略,随机调度 其他还有一些场景的问题如下 1.多个线程同时修改一个变量问题 2.执行的操作指令本身不是原子的 比如自增操作就分为三步,加载,自增,保存 3.内存可见性问题 4.指令…...
CANdevStudio完全指南:终极免费开源CAN总线仿真开发平台
CANdevStudio完全指南:终极免费开源CAN总线仿真开发平台 【免费下载链接】CANdevStudio Development tool for CAN bus simulation 项目地址: https://gitcode.com/gh_mirrors/ca/CANdevStudio 在汽车电子和工业控制领域,CAN总线仿真工具是开发调…...
多模态大模型如何兼顾视觉理解、语音生成与跨模态推理?——揭秘统一表征下的动态任务路由机制
第一章:多模态大模型多任务学习策略 2026奇点智能技术大会(https://ml-summit.org) 多模态大模型的多任务学习并非简单地将图像分类、文本生成、语音理解等任务并行堆叠,而是需在共享表征空间中建立语义对齐与梯度协同机制。关键挑战在于不同模态数据的…...
基于CODESYS平台与汇川AM系列PLC的手轮精准对位与ECAT轴协同控制实战解析
1. 手轮与ECAT轴协同控制的核心价值 在精密装配、半导体设备或高精度加工场景中,操作人员经常需要微调设备位置到微米级精度。传统按钮点动方式就像用铁锤雕刻核桃——力度难以把控。而5V差分式手轮配合ECAT总线伺服,相当于给设备装上了"微调旋钮&q…...
FPGA实现CIC滤波器时,如何搞定大位宽累加器溢出?一个5000倍抽取的实战案例
FPGA实现CIC滤波器时大位宽累加器溢出问题的工程实践 在数字信号处理领域,CIC(Cascaded Integrator-Comb)滤波器因其无需乘法运算的独特优势,成为高抽取率场景的首选方案。然而,当面对5000倍这样的超高抽取率时&#x…...
全文降AI的好处:从知网检测算法角度解读为什么要全文处理
全文降AI的好处:从知网检测算法角度解读为什么要全文处理 2026年的毕业季,知网AIGC检测已经成了大多数高校的标配。很多同学论文写完之后第一件事不是找导师看,而是先查一下AI率。 问题来了:查完之后发现AI率偏高,应该…...
LRC歌词制作终极指南:如何用歌词滚动姬轻松制作专业歌词
LRC歌词制作终极指南:如何用歌词滚动姬轻松制作专业歌词 【免费下载链接】lrc-maker 歌词滚动姬|可能是你所能见到的最好用的歌词制作工具 项目地址: https://gitcode.com/gh_mirrors/lr/lrc-maker 歌词滚动姬(LRC Maker)是…...
include ‘config.php‘;+计算机系统的生命周期的庖丁解牛
这行看似简单的代码,实际上是操作系统、文件系统、PHP 引擎和硬件之间的一场精密协作舞蹈。它不仅仅是“读取文件”,更是从磁盘磁畴/闪存电荷到 CPU 寄存器数据的完整迁移过程。 如果把这个过程比作去图书馆借一本参考书: 查目录 (Path Res…...
VideoSrt:一款让视频字幕制作变得简单的Windows工具
VideoSrt:一款让视频字幕制作变得简单的Windows工具 【免费下载链接】video-srt-windows 这是一个可以识别视频语音自动生成字幕SRT文件的开源 Windows-GUI 软件工具。 项目地址: https://gitcode.com/gh_mirrors/vi/video-srt-windows 在当今视频内容爆发的…...
3步掌握专业歌词制作:开源LRC工具完全实战指南
3步掌握专业歌词制作:开源LRC工具完全实战指南 【免费下载链接】lrc-maker 歌词滚动姬|可能是你所能见到的最好用的歌词制作工具 项目地址: https://gitcode.com/gh_mirrors/lr/lrc-maker 你是否曾为制作精准的歌词同步而烦恼?当音乐响…...
三步构建你的专属知识星球离线图书馆
三步构建你的专属知识星球离线图书馆 【免费下载链接】zsxq-spider 爬取知识星球内容,并制作 PDF 电子书。 项目地址: https://gitcode.com/gh_mirrors/zs/zsxq-spider 你是否曾经在知识星球上发现一篇深度好文,想要反复研读却只能在手机上翻看&a…...
