MySQL高性能索引(视频链接:https://pan.baidu.com/s/1_aGwTIs3hfmhC71e-zkhFg 提取码:j8dr)

本文深入探讨了MySQL中的索引原理,包括B-Tree索引、Hash索引和聚簇索引的工作机制,强调了索引在提升查询性能上的重要作用。同时,详细阐述了聚簇索引的数据存储结构及其查询过程,以及如何通过创建合适的索引来优化SQL查询。文章还讨论了主键选择,如自增ID与UUID的性能差异,并举例说明了有序与无序ID对查询性能的影响。
摘要由CSDN通过智能技术生成

1.三和一万

索引(在MYSQL中也叫做键),是存储引擎用于快速找到记录的一种数据结构。
索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。

如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取104个页面,如果这104个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时间),则总共需要100s(但实际上要好很多很多)。

如果对之建立B-Tree索引,则只需要进行log100(10^6)=3次页面读取,最坏情况下耗时30ms。这就是索引带来的效果,很多时候,当你的应用程序进行SQL查询速度很慢时,应该想想是否可以建索引。

2.索引原理

1.png
首先根据索引值,此处为id值,查询索引数据,找到对应id的表数据的逻辑地址;
Cpu将逻辑地址发给硬盘控制器,读取数据页。

3.B-Tree索引

B-Tree索引:每一个叶子节点都包含指向下一个叶子节点的指针,从而方便叶子节点的范围遍历。B-Tree通常意味着所有的值都是按顺序存储的,并且每一个叶子页到根的距离相同&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值