什么是回表查询

简介: MySQL中InnoDB存储引擎的索引分为聚簇索引和二级索引。聚簇索引将数据与索引一起存储,叶子节点包含整行数据,默认主键为聚簇索引;二级索引则分开存储,叶子节点保存主键值,用于回表查询。回表查询需两次索引扫描,影响性能。

在MySQL默认的InnoDB存储引擎中,有两类索引,分别是:聚簇索引和二级索引。 聚簇索引,他的特点呢就是数据与索引存放在一块儿,B+tree索引结构的叶子节点保存了整行数据,而且在一张表中,聚簇索引有且仅有一个,默认主键索引就是聚簇索引。二级索引,指的是数据和索引分开存储,B+tree的叶子节点保存对应的主键,二级索引在一张表中可以有多个。

所谓回表查询,就指的是,在执行这条SQL语句的时候,先根据二级索引去检索出对应的主键值;然后再根据主键值,到聚簇索引中查询出对应的数据,这个过程就叫回表查询。 所以回表查询,是需要扫描两次索引的,性能相对来说会差一些。

目录
打赏
0
4
4
1
19
分享
相关文章
什么是事务以及事务的四大特性?
事务是数据库操作的基本单元,具有ACID四大特性:原子性、一致性、隔离性、持久性。它确保数据的正确性与完整性。并发事务可能引发脏读、不可重复读、幻读等问题,数据库通过不同隔离级别(如读未提交、读已提交、可重复读、串行化)加以解决。MySQL默认使用可重复读级别,兼顾性能与数据一致性需求。
72 3
MySQL数据库索引的数据结构?
MySQL中默认使用B+tree索引,它是一种多路平衡搜索树,具有树高较低、检索速度快的特点。所有数据存储在叶子节点,非叶子节点仅作索引,且叶子节点形成双向链表,便于区间查询。
75 4
解释什么是不稳定排序
本段内容介绍排序算法的稳定性。当排序时存在多个值相等的元素(如红桃五和黑桃五),若它们在排序前后的相对位置保持不变,则该排序算法是稳定的;反之,若其顺序发生变化,则为不稳定排序算法。
25 0
知道什么是聚簇索引,什么是二级索引吗?
本文介绍了数据库中的聚簇索引与二级索引概念。聚簇索引将数据与索引存储在一起,每张表仅有一个,通常为主键索引。若无主键,则会选择非空唯一索引或自动生成rowID作为聚簇索引。二级索引则存储主键值,支持多条索引,用于加速查询过程。
106 26
索引创建的原则
本文介绍了创建数据库索引的六大原则,帮助提升查询效率。内容包括:为大数据量表建索引、常用查询字段建索引、高区分度列优先、varchar字段使用前缀索引、合理使用联合索引,以及控制索引数量以平衡查询与维护成本。
59 8
|
1月前
|
插入排序的实现思路
简介:该算法将数组分为已排序和未排序两部分,初始时左边为已排序区域。每次从未排序区取最左元素,从右向左与已排序元素比较,找到合适位置插入,重复此过程直至所有元素有序。
27 2
|
1月前
|
归并排序能做哪些优化
归并排序常见优化方法包括:小数组切换为插入排序、递归改为迭代实现以减少开销,以及改进为并行归并算法以提升多核CPU性能。
35 1
快速排序的实现思路
该内容描述了快速排序算法的分区过程。首先选择最左侧元素作为基准点,将比基准点小的元素交换到其左边,大的则换到右边,从而确定基准点的正确位置。随后对基准点两侧的子区域递归进行相同操作,直到所有元素有序排列。整个过程高效且常用于大规模数据排序。
20 1
选择排序与其它排序算法比较
选择排序与冒泡排序同属O(n²)排序算法,但选择排序不稳定。相比堆排序,虽每轮均选最大元素,但选择排序基于线性结构,效率较低,而堆排序利用大顶堆结构提升了选择效率。
30 0
下一篇
对象存储OSS
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问