栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Mysql】【高级篇】【第6章 索引】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Mysql】【高级篇】【第6章 索引】

https://www.bilibili.com/video/BV1iq4y1u7vj?p=115

1.为什么使用索引





索引的作用:减少磁盘I/O次数

2.索引及其优缺点 2.1 索引概述


排好序的快速查找数据结构

2.2 优点

2.3 缺点


(1)创建和维护耗时
(2)索引站磁盘空间
(3)更新表时,需要维护索引,耗时

3.InnoDB中索引的推演

https://www.bilibili.com/video/BV1iq4y1u7vj?p=116&spm_id_from=pageDriver
声明:索引在具体的存储引擎中实现,不同存储引擎中 索引底层数据结构是不同的;5.5之后默认使用InnoDB,所以这里讲解InnoDB的索引

3.1 索引之前的查找

先来看一个精准匹配的sql:

select 【列名列表】from 表名 where 列名 = xxx;
1.在一个页中查找

底层是链表结构,一个记录对应一个节点 2.在很多页中查找


数据页之间是双链表结构,一页为一个节点一个书架就相当于一个数据页 3.2 设计索引





1.一个简单的索引设计方案







至此,针对数据页做的简易目录就搞定了;这个目录有一个别名,就叫做索引

2.InnoDB中索引方案 1.迭代1次:目录项记录的页



2.迭代2次 :多个目录项记录的页


3.迭代3次

每一个节点表示一次IO


4.B+ Tree


树的层次越低,IO次数越少;因为每一个页是一次IO

3.3 常见索引概念

https://www.bilibili.com/video/BV1iq4y1u7vj?p=118&spm_id_from=pageDriver

1.聚簇索引

所以InnoDB中,.idb文件既有数据也有索引,二者存储在一起,是聚簇索引MyISAM就是非聚簇索引






2.二级索引(辅助索引、非聚簇索引)





3.联合索引

索引只分为聚簇索引和非聚簇索引;
联合索引指的是用多个字段联合作为索引key,因此若不是联合主键,联合索引就是非聚簇索引;



3.4 InnoDB的B+树索引注意事项 1.根页面万年不动

2.内节点目录项唯一性







确保索引唯一,才能找到插入的位置;
所以二级索引的索引其实是非主键+主键

3.一个页面最少有两个记录

4. MyISAM的索引方案

4.1 MyISAM索引原理




4.2 MyISAM和InnoDB对比

5. 索引的代价

6.Mysql数据结构选择的合理性

6.1 全表遍历 6.2 Hash结构






6.3 二叉搜索树




6.4 AVL树


6.5 B-Tree




6.6 B+Tree







6.7 R树

6.8 小结

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/721049.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号