【MySQL--->索引】

文章目录

    • @[TOC](文章目录)
  • 一、索引概念
  • 二、B树与B+树
    • 1.B树的特点:
    • 2.B+树的特点:
    • 3.为什么使用B+树而不使用B树
  • 三、聚簇索引和非聚簇索引
  • 四、索引操作
    • 1.创建索引
    • 2. 删除索引
    • 3.全文索引

一、索引概念

mysql的查询的过程是从文件中提取到内存中查询,MySQL启动时会在内存中维护一个buffer pool缓冲区,操作数据之前要从磁盘将数据加载到缓冲区,为了减小IO次数MySQL与磁盘的IO单位page是16KB.将这些page组织成一个查询高效的数据结构,这个数据结构就是索引
MySQL索引结构是B+树,索引按照存储引擎分为innodb的聚簇索引和非聚簇索引.按照搜索关键字分为主键索引和普通索引.

二、B树与B+树

1.B树的特点:

B树也叫平衡多路查找树,M阶B树叫做M叉树
1.节点中可以存储多个值(索引),并且从小到大排列.
2.节点即存储键值又存储数据
3.根节点的节点数有[2,M]个子节点
4.除根节点以外的非叶子节点个数为值的个数-1,最大超过M-1.
5.叶子节点都位于同一层.

2.B+树的特点:

B+树是在B树的基础上衍生出来的.
1.根节点可能是叶子节点,也可能是子节点[2,M]的树
2,索引节点有K个值,就有K+1个分支几点.
3.所有叶子节点用指针链接,并从小到大排列.
4.非叶子节点只存储key值,不存储数据,只有叶子节点存储数据.
5.有两个头结点,一个根节点,一个最小的叶子节点.

3.为什么使用B+树而不使用B树

1.表是存储在磁盘中的,要操作表中的数据需要从磁盘提取数据到内存.B+树只有叶子节点存储数据,其他节点只存储key值,所以树的高度相对较低,搜索路径较短,IO次数少.而B树的内部节点存储的是键值对,树的高度相对较高,IO次数多.io开销大,因为磁盘到内存的传输速度慢,数据定位会有寻道时间和旋转延迟.
2.B+树的所有叶子节是一个链表,并且有序,范围查询遍历链表即可,而B树每查询一个都需要从根节点重新遍历查询,范围查询效率低.

三、聚簇索引和非聚簇索引

innodb存储引擎和myisam存储引擎使用的都是B+树索引结构,但是innodb是将数据存储在叶子节点,而myisam是将索引结构和数据分开存储的,索引叶子节点存储的是数据记录的地址。 像innodb这样的索引结构称为将聚簇索引,myisam这样的称为非聚簇索引

除了主键索引,允许添加其他非主键索引,聚簇索引的非主键索引的叶子结点是存储的主键,利用非主键索引找到主键,再利用主键找到整条数据,非聚簇索引的非主键索引则跟主键索引相同,叶子结点都是存储的数据记录的地址.

四、索引操作

1.创建索引

创建主键索引
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建唯一键索引
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建其他普通索引
在这里插入图片描述
在这里插入图片描述
创建复合主键索引
复合主键索引是多列组合成的主键,查询时,用复合建最左边列的值查找复合建右边的值,从主键的左往后右一次匹配能匹配上,就能直接返回,这加索引覆盖.

2. 删除索引

删除主键索引
在这里插入图片描述
删除唯一键索引
在这里插入图片描述
删除普通索引
在这里插入图片描述

3.全文索引

创建全文索引
在这里插入图片描述
在这里插入图片描述
普通查询
在这里插入图片描述
全文索引查询
在这里插入图片描述


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

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

相关文章

基于 NGram 分词,优化 Es 搜索逻辑,并深入理解了 matchPhraseQuery 与 termQuery

基于 NGram 分词,优化 Es 搜索逻辑,并深入理解了 matchPhraseQuery 与 termQuery 前言问题描述排查索引库分词(发现问题)如何去解决这个问题?IK 分词器NGram 分词器使用替换 NGram 分词器后进行测试matchPhraseQuery 查…

pytorch加载的cifar10数据集,到底有没有经过归一化

pytorch加载cifar10的归一化 pytorch怎么加载cifar10数据集torchvision.datasets.CIFAR10transforms.Normalize()进行归一化到底在哪里起作用?【CIFAR10源码分析】 torchvision.datasets加载的数据集搭配Dataloader使用model.train()和model.eval() pytorch怎么加载…

Webpack的Tree Shaking。它的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

Cube MX 开发高精度电流源跳坑过程/SPI连接ADS1255/1256系列问题总结/STM32 硬件SPI开发过程

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 1.使用STM32F系列开发一款高精度恒流电源,用到了24位高精度采样芯片ADS1255/ADS1256系列。 2.使用时发现很多的坑,详细介绍了每个坑的具体情况和实际的解决办法。 坑1:波特率设置…

使用Java AOP实现面向切面编程

简介 面向切面编程(AOP)是一种编程思想,它将程序中的关注点分离,使得开发人员可以专注于核心业务逻辑而不必过多关注横切关注点。Java中的AOP可以通过使用AspectJ等框架来实现,本文将介绍如何使用Java AOP实现切面编程…

【MongoDB】索引 - 复合索引

一、准备工作 这里准备一些学生数据 db.students.insertMany([{ _id: 1, name: "张三", age: 20, class: { id: 1, name: "1班" }},{ _id: 2, name: "李四", age: 22, class: { id: 2, name: "2班" }},{ _id: 3, name: "王五…

[MRCTF2020]你传你呢1

提示 只对php以及phtml文件之类的做了防护content-type.htaccess文件 这里就不整那么麻烦直接抓包测试 首先对后缀测试看过滤了哪些 (php php3 pht php5 phtml phps) 全部被ban了 到这里的后续思路通过上传一些配置文件把上传的图片都以php文件执行 尝试上传图片码, 直接上传成…

机器人制作开源方案 | 管内检测维护机器人

一、作品简介 作者:李泽彬,李晋晟,杜张坤,禹馨雅 单位:运城学院 指导老师:薛晓峰 随着我国的社会主义市场经济的飞速发展和科学技术的革新,各行各业的发展越来越离不开信息化和网络化的…

虚拟机备份中的CBT技术

虚拟机备份的CBT( Changed Block Tracking)模式是一种备份模式,它能够识别和跟踪自上次备份后虚拟机中被修改过的块,这些修改会被存放到日志文件中。在启用CBT模式之后,备份软件会利用这个功能进行增量备份。 启用CBT…

高效解决香港服务器负载过高的方法

​  当我们在使用香港服务器时,有时会遇到服务器负载过高的问题。这会导致网站加载速度变慢甚至无法正常使用。为了解决这个问题,我们需要采取一些高效的方法来提升服务器的负载能力。 1.考虑对服务器进行升级维护。通过增加硬件资源,如CPU…

单点登录与OAuth2.0 的区别

前言:SSO是Single Sign On(单点登录)的缩写,OAuth是Open Authority(开放授权),这两者都是使用令牌的方式来代替用户密码访问应用。流程上来说他们非常相似,但概念上又十分不同。很多人会将其混为一谈&#…

Oracle安全基线检查

一、账户安全 1、禁止SYSDBA用户远程连接 用户具备数据库超级管理员(SYSDBA)权限的用户远程管理登录SYSDBA用户只能本地登录,不能远程。REMOTE_LOGIN_PASSWORDFILE函数的Value值为NONE。这意味着禁止共享口令文件,只能通过操作系统认证登录Oracle数据库。 1)检查REMOTE…

noip模拟赛多校第八场 T3 遥控机器人 (最短路 + 技巧拆点)

题面 简要题意: 给你一个 n n n 个点 m m m 条边的图。边 i i i 有颜色 c i c_i ci​。你可以选择一些边改变它们的颜色成为区间 [ 1 , m ] [1, m] [1,m] 中的任意颜色,改变一条边 i i i 一次的代价是 w i w_i wi​。询问你能否在一些改变…

深度学习框架TensorFlow.NET之数据类型及张量2(C#)

环境搭建参考: 深度学习框架TensorFlow.NET环境搭建1(C#)-CSDN博客 由于本文作者水平有限,如有写得不对的地方,往指出 声明变量:tf.Variable 声明常量:tf.constant 下面通过代码的方式进行学…

RIP路由配置

RIP路由配置步骤与命令: 1.启用RIP路由:router rip 2.通告直连网络:network 直连网络 3.启用RIPv2版本:version 2 4.禁用自动汇总:no auto-summary 注意:静态路由通告远程网络,动态路由通告…

【flink】Task 故障恢复详解以及各重启策略适用场景说明

文章目录 一. 重启策略种类(Restart Strategies)1. Fixed Delay Restart Strategy2. Failure Rate Restart Strategy3. Fallback Restart Strategy4. No Restart Strategy 二. 故障恢复策略(Failover Strategies)1. (全…

音频文件元数据修改:批量操作的技巧和方法

在音乐产业不断发展和数字技术日益成熟的今天,音频文件已经成为我们日常生活中的重要组成部分。在这些文件中,元数据起着至关重要的作用,它不仅提供了关于音频文件的基本信息,如艺术家、歌曲名称、专辑名称等,还为我们…

“网站不安全”该如何解决

当我们的网站被客户访问的时候,经常会出现提示不安全的情况,导致客户的不信任,从而出现客户流失的现象,这种情况我们应该如何解决呢? 首先,我们要确定网站会出现不安全的原因,一般来说&#xff…

智能安全配电装置在银行配电系统中的应用

【摘要】银行是国家重点安全保护部分,关系到社会资金的稳定,也是消防重点单位,消防安全保障工作是银行工作的重要方面。智能安全配电装置应用在银行配电系统中,可以提升银行智能化管控水平和有效防范电气火灾的发生。 【关键词】…

从首届中国测绘地理信息大会,解读2023年度国产GIS创新关键词

创新是什么?这是各行各业持续思考的问题。 第一届中国测绘地理信息大会已进入倒计时!这是中国测绘学会、中国地理信息产业协会和中国卫星导航定位协会共同主办的全国性高端盛会。据悉,本次大会将有1个主论坛、38场分论坛,近2万平…