MySQL索引工作原理和管理

文章目录

  • 索引概述
    • 索引优缺点
  • 索引结构
    • 二叉树

索引概述

MYSQL官方对索引的解释How MySQL Uses Indexes

MySQL官方对索引的解释为:索引用于快速查找具有特定列值的行。8.3.1 How MySQL Uses IndexesIndexes are used to find rows with specific column values quickly. Without an index, 
MySQL must begin with the first row and then read through the entire table to find the relevant rows. 
The larger the table, the more this costs. If the table has an index for the columns in question, 
MySQL can quickly determine the position to seek to in the middle of the data file without having to look at all the data. 
This is much faster than reading every row sequentially.百度翻译MySQL如何使用索引
索引用于快速查找具有特定列值的行。在没有索引的情况下,
MySQL必须从第一行开始,然后通读整个表以找到相关的行。
数据表越大,花费就越多。如果该表具有用于所讨论的列的索引,
MySQL可以快速确定要在数据文件中间查找的位置,而无需查看所有数据。
这比按顺序读取每一行要快得多。
索引(Index)是帮助MySQL高效获取数据的数据结构。索引是经过了排序了的可以快速查找数据的特殊数据结构,它定义在作为查找条件的字段上,它通过存储引擎实现。

索引优缺点

优点:1.索引可以降低检索时需要扫描的数据量,减少了IO次数。(字典通过偏旁部首或拼音可以直接翻到对应字的页数)2.索引可以避免服务器排序和使用零时表。3.索引可以帮助随机IO转为顺序IO.缺点:1.索引占用额外的磁盘空间,每个所以都还占据一定的物理空间。2.索引有创建和维护成本,随着数据量的增加,索引需要投入的成本也就越高。3.索引影响数据的插入和修改速度。(试想,新华大字典的检字表里突然需要增加一个7画的字,那7画的这个字就得插入到6画的和8画的字的中间,此时7画字的详情页码占用了原来8画字的页码,所以8画以后的字,9画,10画,11画...等等大于7画的字的页码都得依次往后挪一挪,这就是一个巨大的索引维护成本。)
索引类型:B+Tree、HASH、R TREE、FULL TEXT

索引结构

Mysql的索引使用B树、B+树等数据结构了解B树和B+树之前需要先了解二叉树、红黑树、平衡树等数据结构.二叉树,红黑树,B-Tree,B+Tree

参考链接:https://www.cs.usfca.edu/~galles/visualization/StackArray.html
由下面的动图可以看出Push入栈和Pop出栈都是根据索引角标[01234]去查找的.
在这里插入图片描述

二叉树

二叉树参考链接:https://www.cs.usfca.edu/~galles/visualization/BST.html
二叉树是如何遍历的
由下面的动图可以看出二叉树数据存放时,总是和根节点先做比较,再决定是存放在根节点的左节点还是有节点,就像二分法一样。
在这里插入图片描述
当delete二叉树中的数据时,也是会去遍历与之二分出来的数据做比较。
在这里插入图片描述

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

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

相关文章

【深度学习-目标检测】03 - Faster R-CNN 论文学习与总结

论文地址:Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks 论文学习 1. 摘要与引言 研究背景与挑战:当前最先进的目标检测网络依赖于 区域提议(Region Proposals)来假设目标的位置&#xff0c…

猫咪喜爱什么猫粮?五款备受赞誉的主食冻干猫粮推荐!

咱们养猫人每天最愁的就是咋给自家猫咪选一款优质的猫粮,让猫主子吃了健健康康的。早些年大多养猫人的标准就是盯着进口的买,所以之前进口猫粮的销量一直遥遥领先,感觉品控也严,也就放心大胆的冲进口猫粮了,但近期百利…

[Unity+文心知识库]使用百度智能云搭建私有知识库,集成知识库API,打造具备知识库的AI二次元姐姐

1.简述 最近从百度智能云的官方技术支持那边了解到,目前百度千帆大模型平台提供有在线的知识库功能,能够在线上传自己的私人知识库文档,并且配置文心一言模型作为文本生成的引擎,构建自己的私有知识库。之前自己搭建知识库都是用的…

基于mysql+jdbc+java swing的学生成绩信息管理系统

Java课程设计 前言 来csdn也有两年了,在这期间学了很多的知识,也跟着许多的大神做了几个小项目。但自己也在想什么时候能够有个自己的项目,之前在学校做过一个基于集合存储数据的学生信息管理系统,现在想着改进一下,…

推广主要指标及定义

推广主要指标以直通车为例解释,如图所示 1.展示量:当消费者搜索某个词,推广计划在天猫直通车展示位上被买家看到的次数(去掉被消费者快进划过、主图未完金展现等情况产生的曝光); 2.点击量:消费者看到广告…

单片机的RTC获取网络时间

理解网络同步校准RTC的原理需要考虑NTP、SNTP、RTC这三个关键组件的作用和交互。下面详细解释这个过程: 1. NTP(Network Time Protocol): 协议目的:NTP是用于同步计算机和设备时钟的协议。它通过在网络上与时间服务器通…

基于包围盒算法的三维点云数据压缩和曲面重建matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 包围盒构建 4.2 点云压缩 4.3 曲面重建 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ...........................................…

多维时序 | MATLAB实CNN-Mutilhead-Attention卷积神经网络融合多头注意力机制多变量时间序列预测

多维时序 | MATLAB实CNN-Mutilhead-Attention卷积神经网络融合多头注意力机制多变量时间序列预测 目录 多维时序 | MATLAB实CNN-Mutilhead-Attention卷积神经网络融合多头注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | …

LeetCode刷题--- 优美的排列

个人主页:元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 http://t.csdnimg.cn/6AbpV 数据结构与算法 ​​​​​​http://t.cs…

TrustZone之与非安全虚拟化交互

到目前为止,我们在示例中忽略了非安全状态中可能存在的虚拟化程序。当存在虚拟化程序时,虚拟机与安全状态之间的许多通信将通过虚拟化程序进行。 例如,在虚拟化环境中,SMC用于访问固件功能和可信服务。固件功能包括诸如电源管理之…

关于“Python”的核心知识点整理大全43

目录 ​编辑 15.2.3 使2散点图并设置其样式 scatter_squares.py 15.2.4 使用 scatter()绘制一系列点 scatter_squares.py 15.2.5 自动计算数据 scatter_squares.py 15.2.6 删除数据点的轮廓 15.2.7 自定义颜色 15.2.8 使用颜色映射 scatter_squares.py 注意 15.2.9…

【微服务面试题(三十三道)】

文章目录 微服务面试题(三十三道)概述1.什么是微服务?2.微服务带来了哪些挑战?3.现在有哪些流行的微服务解决方案?这三种方案有什么区别吗? 4.说下微服务有哪些组件? 注册中心5.注册中心是用来干…

网络编程套接字socket

哈哈哈,之前的保存成草稿忘了发 目录 一 . 先回顾一下网络初始中的相关概念: 1.网络通信: 2.局域网: 3.广域网: 4.IP地址: 5.端口: 概念 格式 6.协议: 7.五元组: 8.分层…

【cesium-4】cesium空间数据加载与管理

目录 一、cesium空间数据加载 1、cesium画线 2、cesium绘制矩形 3、cesium绘制平面 4、飞机模型加载 5、标签加载 6、cesium绘制多边形 二、cesium空间数据管理 一、cesium空间数据加载 空间数据包括: 矢量数据:几何体、模型、标签等&#xff…

如何使用支付宝沙箱环境支付并公网调用sdk创建支付单服务

文章目录 1.测试环境2.本地配置2. 内网穿透2.1 下载安装cpolar内网穿透2.2 创建隧道3. 测试公网访问4. 配置固定二级子域名4.1 保留一个二级子域名4.2 配置二级子域名5. 使用固定二级子域名进行访问 1.测试环境 MavenSpring bootJdk 1.8 2.本地配置 获取支付宝支付Java SDK,…

单片机第三季-第七课:STM32中断体系

目录 1,NVIC 2,中断和事件的区别 3,优先级的概念 4,如何实际编程使用外部中断 5,STM32开发板通过按键控制LED 5.1,打开相应GPIO模块时钟 5.2,NVIC设置 5.3,外部中断线和配套…

【网络奇缘】——奈氏准则和香农定理从理论到实践一站式服务|计算机网络

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:"没有罗马,那就自己创造罗马~" 目录 失真 - 信号的变化 影响信号失真的因素: ​编辑 失真的一种现象:码间…

udp多播/组播那些事

多播与组播 多播(multicast)和组播(groupcast)是相同的概念,用于描述在网络中一对多的通信方式。在网络通信中,单播(unicast)是一对一的通信方式,广播(broad…

Azure Machine Learning - Azure OpenAI GPT 3.5 Turbo 微调教程

本教程将引导你在Azure平台完成对 gpt-35-turbo-0613 模型的微调。 关注TechLead,分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师&…