关系型数据库 --- 索引

本文探讨了关系型数据库中索引的重要性,包括快速查询数据、主键与唯一键的索引类型。介绍了常见的索引数据结构如二叉查找树、B-Tree、B+-Tree和Hash结构,重点讲解了InnoDB存储引擎的索引策略。同时,提到了慢查询的定位和优化方法,如使用explain工具分析SQL,并讨论了索引并非越多越好,因为会增加维护成本和空间占用。
摘要由CSDN通过智能技术生成

索引模块

为什么要使用索引?

一、快速查询数据。有了索引可以避免全表扫描,提高查询效率

什么样的信息能成为索引?

一、主键、唯一键以及普通键等

索引的数据结构

一、生成索引,建立二叉查找树进行二分查找

二、生成索引,建立B-Tree 结构进行查找

三、生成索引,建立B+-Tree 结构进行查找 (主流!!!)

四、生成索引,建立Hash 结构进行查找。

BetMap等

MySql数据库不支持BetMap 索引

密集索引和稀疏索引的区别?

密集索引文件中的每个搜索码值都对应一个索引值

稀疏索引文件只为索引码的某些值建立索引项

额外补充:

Inno DB

若一个主键被定义,该主键则作为密集索引

若没有主键被定义,则该表的第一个唯一非空索引则作为密集索引

若不满足以上条件,Inno DB内部会生成一个隐藏的主键(密集索引)

非主键索引存储相关键位和其对应的主键值,包含两次查找

衍生出来的问题&

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值