【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.全文索引

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


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

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

相关文章

LED点阵显示原理(取字模软件+Keil+Proteus)

前言 写这个的时候我还是有点生气的,因为发现完全按照书上面的步骤来,结果发现不理想,后面还是自己调试才解决了。-_-说多了都是泪,直接进入正文。 软件的操作还是参考我之前的博客。 LED数码管的静态显示与动态显示&#xff0…

LabelImg使用笔记

LabelImg使用笔记 文章目录 LabelImg使用笔记一、LabelImg简介1.1、特性1.2、LabelImg的热键 二、LabelImg安装三、3种格式的使用3.1、VOC格式标注3.2、yolo格式标注3.3、json格式 四、LabelMe 和 LabelImg适用场景 一、LabelImg简介 LabelImg 是一个用于图像标注的开源工具&a…

Ubuntu下Anaconda安装

Ubuntu下Anaconda安装 进入anaconda官网 https://www.anaconda.com/ 下载Linux64位版本; 将下载好的".sh"文件放入虚拟机中; 运行指令sudo bash Anaconda3-2023.09-0-Linux-x86_64.sh 此后会自动加载安装程序,中途会停止两次&am…

win11下使用VMmare设置CentOS7里面的静态IP

1,win11上的VMware 8 设置 2,选择VMmare上的虚拟网络编辑进行设置 #3,接下来进入虚拟机设置(就是进入CentOS7 打开终端 右键 Open Terminal ) # 切换root su root #ksana #编辑网络配置文件 vi /etc/sysconfig/networ…

中小企业如何实现数字化转型发展?

数字化转型已成为企业未来发展的必然趋势,行业头部企业在此过程中持续投入自动化、信息化及数字化技术。虽然大多数系统投入不能仅基于短期投资回报率决策,且资源投入大见效慢、失败率也高,但数字化转型是不可逆转的过程,未来生存的企业必须是数字化的企业。 中小企业可以…

【MongoDB】索引 - 单字段索引

MongoDB支持在集合文档中的任意字段上创建索引,默认情况下所有的集合都有一个_id字段的索引,用户和应用可以新增索引用于查询和操作。 一、准备工作 这里准备一些学生数据 db.students.insertMany([{ _id: 1, name: "张三", age: 20, clas…

集群调度-02

目录 1、亲和性 1.1 节点亲和性 1.2 Pod 亲和性 1.3 键值运算关系 1.4 Pod亲和性与反亲和性 1.5 使用 Pod 反亲和性调度 2、污点(Taint) 和 容忍(Tolerations) 2.1 污点(Taint) 2.2 容忍(Tolerations) 2.3 其它注意事项 2.4 维护操作 3、Pod启动阶段(相…

onnx-tensorrt-8.4-EA安装和使用

因项目需求要用到onnx-tensorrt,在安装过程中遇到不少坑,故这里简单记录一下,给大家一个参考。 首先是尝试在本机上直接安装,发现会出现版本对应不上一系列问题,故最终我还是选择在docker拉去一个镜像去配环境和使用。…

马斯克发布大模型Grok;主流AI创意生成工具图谱;Runway视频大赛获奖作品解析;DALL-E 3图像混合操作;42章经播客推荐 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 👀 马斯克「xAI」发布首个AI大模型「Grok」 https://grok.x.ai 11月5日,马斯克旗下人工智能公司 xAI 发布了首款 AI 聊天产品…

Capto2024专为Mac电脑设计的屏幕录制和视频编辑软件

不得不说视频编辑功能:Capto提供了多种视频编辑功能,例如剪辑、旋转、裁剪、调整音频和视频的音量、加入水印、添加注释等,你能够使用Capto编辑你的视频,使之更加专业和生动。有目共睹的是录制完成后,你能够使用Capto提…

20.7 OpenSSL 套接字SSL加密传输

OpenSSL 中的 SSL 加密是通过 SSL/TLS 协议来实现的。SSL/TLS 是一种安全通信协议,可以保障通信双方之间的通信安全性和数据完整性。在 SSL/TLS 协议中,加密算法是其中最核心的组成部分之一,SSL可以使用各类加密算法进行密钥协商,…

web3 dapp React项目引入 antd 对 balance 用户token信息组件进行样式改造

好 上文 web3 React dapp中编写balance组件从redux取出并展示用户资产 我们简单处理了用户资产的展示 那么 我们继续 先启动 ganache 环境 终端输入 ganache -d然后 打开我们的项目 将合约发布到区块链上 truffle migrate --reset然后 我们启动项目 确认一切正常 还原到上文…

k8s中实现mysql主备

文章目录 一、k8s中实现mysql主备1.1 环境信息1.2 部署nfs-provisioner1.2.1 安装nfs1.2.2 部署nfs-provisioner 1.3 安装mysql1.4 备库上查看是否同步 一、k8s中实现mysql主备 1.1 环境信息 机器操作系统ipmysql版本k8s版本storageClassmaster1CentOS7.8192.168.0.20mysql5.…

C++ 代码实例:多项式除法简单计算工具

文章目录 前言代码仓库代码说明核心片段 结果总结参考资料作者的话 前言 C 代码实例:多项式除法简单计算工具。 代码仓库 yezhening/Programming-examples: 编程实例 (github.com)Programming-examples: 编程实例 (gitee.com) 代码 说明 由于代码篇幅较多&#…

【蓝桥杯省赛真题41】Scratch电脑开关机 蓝桥杯少儿编程scratch图形化编程 蓝桥杯省赛真题讲解

目录 scratch电脑开关机 一、题目要求 编程实现 二、案例分析 1、角色分析

基于STM32的设计智慧超市管理系统(带收银系统+物联网环境监测)

一、前言 基于STM32+OneNet设计的智慧超市管理系统(2023升级版) 1.1 项目背景 随着IoT技术的不断发展,智能无人超市也越来越受到人们的关注。智能无人超市是指在无人值守的情况下,通过物联网、大数据等技术手段实现自助选购、结算和配送的新型商场。当前设计了一种基于STM32…

【数据开发】大数据平台架构,Hive / THive介绍

1、大数据引擎 大数据引擎是用于处理大规模数据的软件系统, 常用的大数据引擎包括Hadoop、Spark、Hive、Pig、Flink、Storm等。 其中,Hive是一种基于Hadoop的数据仓库工具,可以将结构化的数据映射到Hadoop的分布式文件系统上,并提…

家用电脑做服务器,本地服务器搭建,公网IP申请,路由器改桥接模式,拨号上网

先浇一盆冷水! 我不知道其他运营商是什么情况。联通的运营商公网IP端口 80、8080、443 都会被屏蔽掉,想要开放必须企业备案(个人不行)才可以。也就是说,只能通过其他端口进行showtime了。 需要哪些东西? 申…

邦芒攻略:面试迟到该如何补救

面试迟到该如何补救 ,人际交往能力强的人在职场上也非常吃得开,职场少不了竞争,职场上的很多东西都是值得学习的,要学会职场的规则才能够如鱼得水,了解面试迟到该如何补救 。 ​ ​1、路上突发情况事先提前告知的 在…

leetcode做题笔记216. 组合总和 III

找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。 示例 1: 输入: k 3, n 7 输出: [[1,2,4]] 解释…