当前位置:网站首页>7.15 Day21---MySQL----索引
7.15 Day21---MySQL----索引
2022-08-04 05:24:00 【您算哪块小饼干?】
目录
索引:
索引的优缺点:
时间上
索引可以大大提升查询的速度
牺牲了增删改的速度,因为在增删改的时候为了保证索引的有序性,需要动态维护索引
空间方面:索引需要占物理空间。
索引的分类
主键索引:关键字primary key
唯一索引:关键字 unique
普通索引(非唯一):关键字 index
全文索引:关键字 fulltext
聚簇索引=主键索引=一级索引
非聚簇索引=(唯一索引,普通索引)=二级索引

Frm文件:表结构文件
Ibd文件:表数据文件
Create drop alter-操作frm文件
Insert update delete -操作ibd文件

只有主键索引叫聚簇索引,非主键索引叫非聚簇索引
Innodb不支持全文索引
创建删除索引的语法
聚簇索引是表自带的,我们自己创建的都是非聚簇索引,如果表没有主键。那么他会默认选择隐藏列rowid 来创建聚簇索引
创建和删除索引的语法:
(聚簇索引=主键索引是表自带的,我们自己创建的都是非聚簇索引)
(如果表没有主键,那么会选择隐藏列rowid来创建聚簇索引)
创建
1.在create table建表的时候添加索引
2.在create table建表成功以后,使用alter语句添加索引
ALTER TABLE 表名 ADD INDEX 索引名(字段名);
3.在create table建表成功以后,使用create index语句添加索引
CREATE INDEX 索引名 ON 表名(字段名);
删除
1.使用alter语句删除索引
ALTER TABLE 表名 DROR INDEX 索引名;
2.使用drop语句删除索引
ORDR INDEX 索引名 ON 表名;
索引的数据结构:
MYSQL的索引支持两种数据结构
1.B+TREE B+树结构的索引(支持范围查询)
2.HASH 哈希结构的索引(不支持范围查询)
数据结构的演进:
二叉树:
问题:无法自平衡



平衡二叉树-AVL树:
左旋算法:当右边的叶子节点的深度-左边叶子节点的深度>1的时候,触发左旋
右旋算法:当左边的叶子节点的深度-右边叶子节点的深度>1的时候,触发右旋
目的:维持树的平衡
多路平衡二叉树-B树:
树的度数:每个节点中可以存储的元素的个数
单路树:度数=1
多路树:度数=n,n>1
同等规模的数据,单路树是高瘦树,多路树是矮胖树
多路树比单路树的优势在于更少的磁盘IO就可以找到数据

NYSQL是怎么设计索引的:
树的每一个节点是一个磁盘块,MYSQL将表的ibd文件拆分为很多个磁盘块,每个磁盘块的大小统一是16KB,每次磁盘IO读取一个磁盘块的数据,一个磁盘块的数据也称为一页数据
B+树和B-树的区别:
1个节点=1个磁盘块=16KB
假设一行数据data是200字节,主键id是8个字节,B树,一个磁盘块大概存储8行数据,B+树,一个磁盘块大概可以存储1000个主键id
B+树:
1.最底层的叶子节点组成了一个单链表
2.部分元素做了冗余
3.只有最底层的叶子节点才存储数据,上层所有节点只存储主键id
B-树:
行数据data与主键存储在一起
走索引:二分查找
不走索引:全部扫描
说说索引:

边栏推荐
- Dynamic programming of the division of numbers
- Tactile intelligent sharing - SSD20X realizes upgrade display progress bar
- 字节最爱问的智力题,你会几道?
- SLSA 框架与软件供应链安全防护
- MySQL日志篇,MySQL日志之binlog日志,binlog日志详解
- Do you think border-radius is just rounded corners?【Various angles】
- [Cocos 3.5.2]开启模型合批
- System design. How to design a spike system (full version transfer)
- The Road to Ad Monetization for Uni-app Mini Program Apps: Full Screen Video Ads
- C Expert Programming Chapter 5 Thinking about Linking 5.2 Advantages of Dynamic Linking
猜你喜欢
![[Cocos 3.5.2]开启模型合批](/img/d9/9e8f71c9a26c8052b11291fe3ba7ac.png)
[Cocos 3.5.2]开启模型合批
![[One step in place] Jenkins installation, deployment, startup (complete tutorial)](/img/f2/15fb546eb864d7ff40b5507d5c7aa5.png)
[One step in place] Jenkins installation, deployment, startup (complete tutorial)

编程大杂烩(四)

System design. Seckill system

Programming hodgepodge (4)

el-Select selector bottom fixed

OpenSSF 安全计划:SBOM 将驱动软件供应链安全

Delphi-C端有趣的菜单操作界面设计

About yolo7 and gpu

Get the selected content of the radio box
随机推荐
去重的几种方式
MySQL日志篇,MySQL日志之binlog日志,binlog日志详解
【云原生--Kubernetes】Pod资源管理与探针检测
2023年PMP考试会用新版教材吗?回复来了!
基于gRPC编写golang简单C2远控
谷粒商城-基础篇(项目简介&项目搭建)
字节最爱问的智力题,你会几道?
[C language advanced] program environment and preprocessing
el-Select 选择器 底部固定
部署LVS-DR群集【实验】
编程大杂烩(三)
System design. Seckill system
[Cocos 3.5.2]开启模型合批
渗透测试(PenTest)基础指南
符号表
Bolb analysis of image processing (1)
MySQL数据库面试题总结(2022最新版)
Get the selected content of the radio box
Turn: Management is the love of possibility, and managers must have the courage to break into the unknown
word 公式编辑器 键入技巧 | 写数学作业必备速查表