mysql索引(b+tree)小记

本文深入探讨了数据库索引的不同类型及其优缺点,包括hash、二叉树、红黑树、B+树等数据结构,以及MyISAM和InnoDB引擎下的索引实现方式。解析了非聚集索引和聚集索引的区别,以及索引在实际应用中对性能的影响。

索引:快速检索的数据结构,缺点是插入时要创建索引树,所以索引不能太多

1.hash O(1)

时间复杂度低
有冲突,不支持范围查询,不支持排序

2.二叉树BST 平衡树:O(logn)

缺点:当树不平衡时,相对于没有索引

3.红黑数

相对二叉树,相对平衡
插入逐渐增大时,也会有右倾,也不是很平衡

4.b+tree

多路自平衡搜索树,解决红黑树和二叉树的缺点
Degree(3–>7)
底部是链表
天然契合innoDb的缓存(index page),减少io次数(利用空间局部性)

mysql索引:(引擎:表级别的)

myISAM引擎(非聚集索引)

frm文件:创建表的文件,
myd文件:表的数据文件
myi:表的索引文件
非聚集就是索引和数据不在同一个文件
树的子节点,存的是数据的物理地址

innoDB引擎(聚集索引)(锁级别高,支持事务)

frm文件:创建表的文件
idb文件:索引+数据
聚集就是索引和数据在同一个文件
主键索引树的子节点,存的是数据内容
非主键索引树的子节点,存的是数据主键(偷懒性:降低存储空间,减少索引的创建,提高插入效率)

重复度高的字段,不建议用索引,原因是用不了mysql缓存,io次数没有变
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值