首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
数据库
›
Oracle
›
mysql知识总结 索引篇
返回列表
发新帖
mysql知识总结 索引篇
[复制链接]
发表于 2025-9-19 23:38:35
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
本文是阅读 小林coding 后的读书条记
原文可以点击上面超链接到达
也可以直接百度搜索 小林coding
1. 索引题目常见分类
1. 什么是索引
索引就是目次
比如说我们想要查询一本书的某内容 最呆的方法就是一页一页的取翻嘛
但是如许子的服从就很低 以是说我们发明确目次 索引也是同样的原理
什么是
存储
引擎
所谓
存储
引擎 说白了就是怎样
存储
数据 怎样创建索引 怎样更新 删除 查找数据的实现方法
2. 索引的分类
索引可以分为哪些类 分别是什么
索引可以分为
按数据布局分类
有B+数索引 哈希索引 full-text索引
按物理存储分类
聚簇索引和二级索引(辅助索引)
按照字段特性分类
主键索引 唯一索引 普通索引 前缀索引
按照字段个数分类
单例索引 联合索引
3. 从数据布局分类
从数据布局分类有 B+树索引 hash索引 full-text索引
此中innodb引擎支持B+树索引和 full-text索引
当我们创建表的时间 innodb会根据差别的场景选择差别的列作为索引
如果有主键 默认使用主键作为为聚簇索引的索引键
如果没有主键 选择第一个不包含null值的唯一列作为索引键
如果都没有 innodb将天生一个隐藏的自增id列作为聚簇索引的索引键
其他索引又被称为二级索引和非聚簇索引 默认的数据布局也是B+ tree
我们用下面的例子来理解B+树
B+树是一颗多叉树 叶子节点才存放数据 非叶子节点存放索引 节点的数据是按照索引序次存放的
每一层父节点的索引值都会出如今子节点的索引值中 因此在子节点中 包含了全部的索引值信息
而且每一个节点都有两个指针 分别指向上一个和下一个叶子节点
如果说我们实行下面的语句
select * from product where id = 5
复制
代码
这条sql语句使用主键索引来查询id为5的商品
查询过程中 B+树会自上而下的查找
将5节点和1 10 20比力 发现节点1~10之间
将5节点和4 7比力 发现节点在4~7之间
在子节点中探求 发现5这条数据
我们发现 这里经过了三次IO
B+树存储万万级别的数据只须要3~4层的高度就可以满足 这意味着查询万万级别的表只须要3到4次IO
B+树相对B树来说 更矮更胖 以是说IO次数更小
一样寻常来说1000万左右的数据是三层 1000万之后是四层 四层之后
性能
就会开始明显降落
这里的缘故原由主要有亮点
到1000万数据的时间分裂成四层 多了一层io
buffer pool瓶颈
哈希索引
innodb 不支持手动创建哈希索引 但是它通过自适应哈希索引在内部优化特定场景
它会主动检测高频访问的索引页 为其创建哈希索引
full-text索引
加快文本内容(如文章、品评、商品形貌等)搜索
4. 通过二级索引查询商品数据的过程
主键索引的B+tree和二级索引的B+tree区别如下
主键索引的叶子节点里存放的是真实的数据
二级索引的叶子节点内里存放的是主键值 而不是真实的存储数据
当我们使用二级索引查询的时间 起首会查询到它的主键值
之后再举行
回表查询
到主键索引中查询到相干的数据
当我们能够查询到的数据可以在辅助索引中找到的时间 就不必举行回表查询了 这就叫做覆盖索引
5. 为什么选择B+树作为索引呢?
和B树对比
B树非叶子节点上也有数据 以是说它是一棵更高更瘦的树 而我们须要更矮更胖的树来淘汰IO次数
B+树的叶子节点之间使用双向链表举行链接 得当范围查找
和二叉树相比
这个和B树一样 太高太瘦了
和hash相比
固然说在做等值查询的时间很快 时间复杂度为O(1)但是面临范围查询的时间服从就很差了
回复
使用道具
举报
返回列表
浏览过的版块
SAAS
数据仓库与分析
DevOps与敏捷开发
物联网
移动端开发
SQL-Server
分布式数据库
花瓣小跑
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表