索引底层数据结构和算法

索引是高效、排序好的数据结构。

 

为什么不用hash结构,hash虽然单个快,但是范围慢;

数组结构的,查找慢,需要遍历。

二叉树结构的,如果数据是从小到大的插入就会属于单边数据,一样速度慢。

红黑树结构,虽然能够实现自动的平衡树,但是如果数据量非常大的时候,还是会出现层次特别高。

Btree结构,是提高一个节点的存储量。可以减少树的高度,提高查找速度。 

而mysql采用的是B+Tree结构,是BTree的变异,叶子节点称之为度,而度的大小一般为磁盘一次能读取的数据的大小。

 

(而磁盘的 寻道时间慢,磁盘旋转速度快,一般磁盘I/O次数评价索引结构的优劣)

(预读:磁盘一般会顺序向后读取一定长度的数据【页的整数倍】放入内存,计算机一般页的大小为4K)

 (B+Tree节点的大小设为一个页的大小,就可以一次读取一个页是一次I/O)

 

mysql的引擎是属于表结构的。而数据库锁一般为表级别的锁,页级别的锁,行级别的锁(innodb)

 

mysql分为MyISAM 引擎(非聚集)

主键索引和普通索引,他的索引btree叶子节点上存储的是数据的指针(数据的存值地址)。

每个索引都是一个BTree结构。

 

 

 

 

innodb引擎(主键索引是(聚集索引))

索引底层使用数据结构:B+tree

主键索引的叶子节点存储的是 索引值和行数据。

普通索引存储的主键索引。

视频资源:

链接:https://pan.baidu.com/s/19OnjT4uAWZ_FfjRjLVORnw 
提取码:r3gy 
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值