24、我们为什么用B+树来做索引?上节课我讲到了索引的作用,是否需要建立索引,以及建立什么样的索引,需要我们根据实际情况进行选择。我之前说过,索引其实就是一种数据结构,那么今天我们就来看下,索引的数据结构究竟是怎样的?对索引底层的数据结构有了更深入的了解后,就会更了解索引的使用原则。...2025-10-27SQL必知必会
25、Hash索引的底层原理是什么?我们上节课讲解了B+树的原理,今天我们来学习下Hash的原理和使用。Hash本身是一个函数,又被称为散列函数,它可以帮助我们大幅提升检索数据的效率。打个比方,Hash就好像一个智能前台,你只要告诉它想要查找的人的姓名,它就会告诉你那个人坐在哪个位置,...2025-10-27SQL必知必会
26、通过索引让SQL查询效率最大化我之前讲了索引的使用和它的底层原理,今天我来讲一讲索引的使用原则。既然我们的目标是提升SQL的查询效率,那么该如何通过索引让效率最大化呢? 今天的课程主要包括下面几个部分: 什么情况下使用索引?当我们进行数据表查询的时候,都有哪些特征需要我们创建索...2025-10-27SQL必知必会
27、从数据页的角度理解B+树查询我们之前已经了解了B+树和Hash索引的原理,这些索引结构给我们提供了高效的索引方式,不过这些索引信息以及数据记录都是保存在文件上的,确切说是存储在页结构中。 对数据库的存储结构以及页结构的底层进行了解,可以加深我们对索引运行机制的认识,从而你对索引...2025-10-27SQL必知必会
28、从磁盘IO的角度理解SQL查询成本在开始今天的内容前,我们先来回忆一下之前的内容。 数据库存储的基本单位是页,对于一棵B+树的索引来说,是先从根节点找到叶子节点,也就是先查找数据行所在的页,再将页读入到内存中,在内存中对页的记录进行查找,从而得到想要数据。你看,虽然我们想要查找的,只...2025-10-27SQL必知必会
29、为什么没有理想的索引?我之前讲过页这个结构,表和索引都会存储在页中,不同的DBMS默认的页的大小是不同的,同时我们也了解到DBMS会有缓冲池的机制,在缓冲池里需要有足够多的空间,存储经常被使用到的页,尽可能减少直接的磁盘I/O操作。这种策略对SQL查询的底层执行...2025-10-27SQL必知必会