MySQL索引分类和操作(增删查)、聚集索引、二级索引(索引篇 二)
具体类型索引分类
分类 | 主要作用 | 特点 |
主键索引(primary) | 针对于表中主键创建的索引 | 默认自动创建, 只能有一个 |
唯一索引(unique) | 避免同一个表中某数据列中的值重 | 可以有多个 |
常规索引 | 最基本类型,可以加快查询速度 | 可以有多个 |
全文索引(fulltext) | 查找的是文本中的关键词,而不是比较索引中的值 | 可以有多个 |
组合索引 | 由多个列组成的索引,可以根据多个列进行搜索 | 可以有多个 |
索引操作语法
查看索引:
show index from 表名;
创建索引:
create [unique | fulltext] index 索引名 on 表名(列名1,列名2, ...);
删除索引:
drop index 索引名 on 表名;
修改的话:先删除再创建
---------------------------------
InnoDB存储引擎中,根据索引的存储形式,可以分为以下两种:
聚集索引(Clustered Index):
在InnoDB中,表数据的物理存储顺序与聚集索引的顺序一致。每个InnoDB表只能有一个聚集索引,通常是主键索引(根据主键id查询数据)。
聚集索引将数据存储与索引放到了一块,索引结构的叶子节点保存了行数据。(查找数据过程简单理解就是1颗B+树结构数据查找过程,B+树结构链接:B+树结构)
聚集索引选取规则:
- 如果存在主键,主键索引就是聚集索引。
- 如果不存在主键,将使用第一个唯一(unique)索引作为聚集索引。
- 如果表没有主键,或没有合适的唯一索引,则InnoDB会自动生成一个rowid作为隐藏的聚集索
- 引。
----------------------------------
二级索引(Secondary Index),也叫非聚集索引:
二级索引的叶子节点存储了索引列的值和对应的聚集索引键值,通过二级索引可以快速定位到对应的聚集索引位置,然后获取到相应的数据行。
它的查询过程分为两步,第一步根据索引列找到聚集索引的键值范围,第二步通过聚集索引查询到对应叶子节点数据(也就是这一行数据),第二步也叫做回表查询。(简单理解就是用到2颗B+树,通过二级索引B+树查到聚集索引的键值范围,然后回到聚集索引B+树查找数据)
回表查询:
先到二级索引中查找数据,找到主键值,然后再到聚集索引中根据主键值,获取数据的方式,就称之为回表查询。回表查询的过程会增加额外的I/O操作,这会导致查询的性能下降。 为了减少回表查询的次数,可以使用覆盖索引。
---------------------------------------
覆盖索引(Covering Index)
覆盖索引是指二级索引包含了查询所需的所有列(该列数据),因此可以直接从索引中获取所需的数据,而无需回表到聚集索引。覆盖索引的数据结构与其他索引类型相似,它存储了索引列的值以及对应的行指针(就是B+树)。
当我们创建一个覆盖索引时,MySQL会将索引列的值和对应的行指针存储在索引结构中。当执行查询时,MySQL会首先检查覆盖索引,如果索引中包含了查询所需的所有列,就可以直接从索引中读取数据,而无需回表操作。
使用覆盖索引可以提高查询性能,因为它减少了回表操作和额外的I/O操作。但是,覆盖索引适用于查询较少的列,如果需要查询的列较多,可能会导致索引变得庞大,影响性能。
上一篇:MySQL 索引的作用、索引结构及执行流程介绍(索引篇 一)
下一篇:MySQL 索引失效情况(索引篇 三)
相关文章:
MySQL索引分类和操作(增删查)、聚集索引、二级索引(索引篇 二)
具体类型索引分类 分类主要作用特点主键索引(primary)针对于表中主键创建的索引默认自动创建, 只能有一个唯一索引(unique)避免同一个表中某数据列中的值重可以有多个常规索引最基本类型,可以加快查询速度可以有多个全文索引(fulltext)查找的是文本中的关键词&…...
(三)Python变量类型和运算符
所有的编程语言都支持变量,Python 也不例外。变量是编程的起点,程序需要将数据存储到变量中。 变量在 Python 内部是有类型的,比如 int、float 等,但是我们在编程时无需关注变量类型,所有的变量都无需提前声明&#x…...
vue三种import导入方式详解?
在Vue.js中,你可以使用三种不同的方式来导入模块或组件: 默认导入 (Default Import): 这种方式用于导入一个模块的默认导出(通常是一个组件或一个对象)。例如: import MyComponent from ./MyComponent.vue;…...
深入理解数据库视图
在数据库管理中,视图(View)是一种强大但常常被忽视的功能。它不仅可以简化复杂的查询操作,还可以提供更高层次的数据抽象和保护。 本文将详细解析视图的各个方面,并以《三国志》游戏的数据为例,给出实际应用场景。 文章目录 什么是视图?基本结构创建视图查看视图的定义…...
Java中@before和setup()方法的作用~
在Java中,setup()和Before同时使用的作用是在测试方法之前执行一些准备工作, setup()是JUnit中的一个方法,它通常被用来初始化测试对象和设置测试环境,它会在每个测试方法执行之前被调用,并且可以在多个测试方法中共享…...

前端uniapp防止页面整体滑动页面顶部以上,设置固定想要固定区域宽高
解决:设置固定想要固定区域宽高 目录 未改前图未改样式改后图改后样式 未改前图 未改样式 .main {display: flex;flex-direction: row;// justify-content: space-between;width: 100vw;// 防止全部移动到上面位置!!!!…...
浮点型数字
1. 浮点型的定义 浮点型(floating-point)是一种表示实数的计算机数据类型,它可以表示有限小数、无限小数和近似值。浮点型的表示方法基于科学计数法,即一个实数可以表示为尾数(有效数字)和指数的乘积。 在…...
贝叶斯统计入门
贝叶斯统计入门 贝叶斯统计是一种以系统和数学严密的方式来推理不确定性的方法。它以18世纪的数学家和哲学家托马斯贝叶斯命名,他开发了一个定理,提供了一种在收集新数据时更新我们对假设的信念的方式。 在贝叶斯统计中,我们从一个先验概率分…...

织梦CMS采集插件-DEDE插件大全
在如今充满信息爆炸的互联网时代,维护一个具有吸引力和活力的网站或博客是一项具有挑战性的任务。对于那些使用织梦CMS建立网站的用户来说,如何持续不断地更新内容以吸引访问者成为了一个突出的问题。 什么是织梦CMS自动采集插件?这些插件是为…...

vuereact质检工具(eslint)安装使用总结
1、ESLint ESLint工具主要类似java中的checkStyle和findbugs,是检查代码样式和逻辑规范的工具。 1.1、ESLint安装流程 打开VSCode软件,打开扩展中心,下载ESLint插件 图1.1 点击后面的install按进行安装,如图1.2所示࿱…...

yolox相关
yolox YOLOXYOLOX-DarkNet53yolov3作为baseline输入端Strong data augmentationMosaic数据增强MixUp数据增强注意 BackboneNeckPrediction层Decoupled headDecoupled Head 细节 Anchor-freeAnchor Based方式Anchor Free方式标签分配初步筛选精细化筛选 SimOTASimOTA Other Back…...

递归专题训练详解(回溯,剪枝,深度优先)
1.汉诺塔问题 在经典汉诺塔问题中,有 3 根柱子及 N 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。移动圆盘时受到以下限制: (1) 每次只能移动…...

JavaScript系列从入门到精通系列第七篇:JavaScrip当中的运算符,主要涉及JavaScript当中的六大数据类型的四则运算
文章目录 前言 一:算数运算符 1:Number类型的四则运算 2:其他数据类型的四则运算 (一):加法运算 (二):减法运算 3:乘法运算 4:除法运算 5:取模运算 前言 运算符也叫操作符。…...

计算机网络 实验二 交换机的基本配置
实验二 交换机的基本配置 实验目的 • 掌握交换机的配置方式及切换命令; • 掌握交换机端口的基本配置; • 掌握交换机mac地址的查看与管理方法。 实验设备 以太网交换机一台服务器一台PC机五台配置电缆、网线若干 网络拓扑及IP地址分配 给计算…...
Tor网络的全面解析
一、Tor网络概述 Tor网络,即“洋葱路由器”(The Onion Router),是一种用于保护用户隐私、避免网络监控的开源软件,可以实现匿名访问互联网。 Tor网络通过多重加密和随机转发,将用户的流量从多个节点中进行…...

数据集笔记:2015上海地铁一卡通数据
数据地址:上海地铁数据_免费高速下载|百度网盘-分享无限制 (baidu.com) 数据介绍 上海2015年几天的地铁一卡通出入站信息 卡号、交易日期、交易时间、公交线路/地铁站点中文名称、行业名称(公交、地铁、出租、轮渡、PR停车场)、交易金额、交易性质(非优惠、优惠、…...

【小沐学C++】C++ 基于Premake构建工程项目(Windows)
文章目录 1、简介2、下载和安装2.1 下载2.3 快速入门 3、使用3.1 支持的工程文件Project Files3.2 构建设置Build Settings3.3 链接Linking3.4 配置Configurations3.5 平台Platforms3.6 过滤Filters3.7 预设值Tokens 4、测试4.1 测试1:入门例子4.2 测试2:…...

Linux shell编程学习笔记2:我是谁 | who am i ?
〇、更新记录 20230926 补充例子2 一、前言 由于Linux系统的shell有许多种:sh、bash、cshell、tcsh、zsh……这些shell以sh为基础对象,在保持兼容性时又各有有创建,形成自己的功能特点,要想让我们编写的shell代码正确、可靠运行…...
移动端和PC端对比【组件库+调试vconsole +单位postcss-pxtorem+构建vite/webpack+可视化echarts/antv】
目录 组件库 移动端 vue vant PC端 react antd vue element 调试:vconsole vs dev tools中的控制台(Console) vconsole:在真机上调试 postcss-pxtorem:移动端不同的像素密度 构建工具 webpack 原理 Ba…...

maven多模块依赖包程序包xxx不存在
背景 rpc-common 被 rpc-server、rpc-client依赖 项目地址 https://github.com/pjmike/springboot-rpc-demo mvn clean install 打包时报错 报错信息 程序包xxxx不存在 找不到符号 原因分析 原因还不清楚,网友们帮解答一下 解决 主pom.xml 添加 <packaging…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...

零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...

无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...

Mysql故障排插与环境优化
前置知识点 最上层是一些客户端和连接服务,包含本 sock 通信和大多数jiyukehuduan/服务端工具实现的TCP/IP通信。主要完成一些简介处理、授权认证、及相关的安全方案等。在该层上引入了线程池的概念,为通过安全认证接入的客户端提供线程。同样在该层上可…...

CVE-2023-25194源码分析与漏洞复现(Kafka JNDI注入)
漏洞概述 漏洞名称:Apache Kafka Connect JNDI注入导致的远程代码执行漏洞 CVE编号:CVE-2023-25194 CVSS评分:8.8 影响版本:Apache Kafka 2.3.0 - 3.3.2 修复版本:≥ 3.4.0 漏洞类型:反序列化导致的远程代…...
AWS vs 阿里云:功能、服务与性能对比指南
在云计算领域,Amazon Web Services (AWS) 和阿里云 (Alibaba Cloud) 是全球领先的提供商,各自在功能范围、服务生态系统、性能表现和适用场景上具有独特优势。基于提供的引用[1]-[5],我将从功能、服务和性能三个方面进行结构化对比分析&#…...