索引模块
为什么要使用索引?
一、快速查询数据。有了索引可以避免全表扫描,提高查询效率
什么样的信息能成为索引?
一、主键、唯一键以及普通键等
索引的数据结构
一、生成索引,建立二叉查找树进行二分查找
二、生成索引,建立B-Tree 结构进行查找
三、生成索引,建立B+-Tree 结构进行查找 (主流!!!)
四、生成索引,建立Hash 结构进行查找。
BetMap等
MySql数据库不支持BetMap 索引
密集索引和稀疏索引的区别?
密集索引文件中的每个搜索码值都对应一个索引值
稀疏索引文件只为索引码的某些值建立索引项
额外补充:
Inno DB
若一个主键被定义,该主键则作为密集索引
若没有主键被定义,则该表的第一个唯一非空索引则作为密集索引
若不满足以上条件,Inno DB内部会生成一个隐藏的主键(密集索引)
非主键索引存储相关键位和其对应的主键值,包含两次查找
衍生出来的问题&