网站制作的管理,哪一个平阳网站建设,网站做点击广告是怎么回事,网络营销方案模板Mysql底层执行过程
当MySQL收到一个查询#xff0c;特别是像 WHERE id ? 这样的基于主键的查询时#xff0c;它可以高效地找到所需的数据。以下是基于InnoDB存储引擎#xff08;MySQL的默认存储引擎#xff09;进行查询的底层过程#xff1a; 解析查询: MySQL首先会解析…Mysql底层执行过程
当MySQL收到一个查询特别是像 WHERE id ? 这样的基于主键的查询时它可以高效地找到所需的数据。以下是基于InnoDB存储引擎MySQL的默认存储引擎进行查询的底层过程 解析查询: MySQL首先会解析查询确定正在查询的表以及需要访问的索引。 查找聚集索引: 在InnoDB中PRIMARY KEY 是一个聚集索引意味着数据物理上按照主键值存储。 查找索引条目: MySQL开始通过主键索引查找数据。它首先查找B树的根节点这通常保存在内存中因此非常快。 遍历B树: MySQL然后沿着B树结构遍历从根节点开始然后到中间节点最后到叶子节点。每一步都是通过比较键值来确定下一步应该跟随哪个指针。这样的结构设计是为了使深度尽可能小通常只需要几步就能找到所需的键值。 举个例子假设有一个B树根节点有三个键值10, 20, 30。如果查询的ID是15那么MySQL会选择键值10和20之间的指针进入下一个中间节点或叶子节点。叶子节点通常来说不仅仅存储一条记录哦 找到数据页: 当MySQL到达B树的叶子节点时它就找到了存储该记录的数据页在InnoDB中叶子节点实际上就是数据页。 读取数据页: 一旦确定了数据页的位置MySQL从磁盘或者如果这个页已经在缓冲池中则从内存中读取这个数据页。 返回结果: 当MySQL通过B树索引找到了数据页后它还需要在该页内搜索到具体的记录。但由于页内记录是有序的这个查找过程也是非常快速的。 在上述过程中“跳过”的概念实际上是指在B树结构中由于索引的有序性和树的层次结构MySQL可以迅速确定不包含所需数据的路径和数据页从而只访问相关的数据页。 数据跳跃 作者总结mysql的数据跳跃只是体现在B树搜索叶子节点的过程中。 B树的搜索MySQL的B树索引使其能够快速地定位到正确的数据页这一步是通过跳跃完成的。从根节点开始沿着索引结构向下直到找到叶子节点数据页。这种结构的优点是无论数据量有多大定位到数据页所需的磁盘I/O操作都是相对固定的因为B树的高度是有限的。 页内搜索一旦MySQL定位到了正确的数据页它就需要在页内进行搜索以找到具体的记录。这是一个顺序搜索但由于数据页的大小是固定且相对较小的例如16KB并且页内的记录是有序的所以这个搜索过程是非常迅速的。
所以确实MySQL的数据跳跃主要体现在B树结构的利用上而数据页内的搜索是顺序的但也非常高效。