索引索引是什么
一种数据结构,帮助我们快速的定位元素
索引的分类
主键索引
唯一索引
普通索引
联合索引(最左匹配原则)
对某字段进行范围会使索引失效
全文索引
索引的数据结构
如何让性能优秀
减少I/O次数
避免回旋
哈希表
根据key的hash算法找到存储的位置
无法范围查找,底层数据结构散列存储数据
平衡二叉树:
自动选取一个中间值,左边的子树小,右边的子树大
树的深度高
回旋
B树
一个节点可以有多个值,一个节点下有多个多个节点,冗余节点
减少了树的高度,还是回旋
B+树
基于B树+链表,重新定义了叶子节点和非叶子节点的关系,叶子节点存储key,非叶子节点存储key和值,所有的非叶子节点通过链表进行连接
不用回旋
冗余节点,内存
聚簇索引和非聚簇索引
聚簇索引主键索引,innodb采用B+树存储主键(key),行数据(value)
非聚簇索引普通索引,innodb采用B+树存储字段(key),主键(value)