什么是回表查询

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

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

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

相关文章
|
前端开发 Java Spring
架构设计的分层架构
架构设计的分层架构
|
11月前
|
存储 关系型数据库 MySQL
知道什么是聚簇索引,什么是二级索引吗?
本文介绍了数据库中的聚簇索引与二级索引概念。聚簇索引将数据与索引存储在一起,每张表仅有一个,通常为主键索引。若无主键,则会选择非空唯一索引或自动生成rowID作为聚簇索引。二级索引则存储主键值,支持多条索引,用于加速查询过程。
302 26
|
11月前
|
关系型数据库 MySQL 数据库
什么是事务以及事务的四大特性?
事务是数据库操作的基本单元,具有ACID四大特性:原子性、一致性、隔离性、持久性。它确保数据的正确性与完整性。并发事务可能引发脏读、不可重复读、幻读等问题,数据库通过不同隔离级别(如读未提交、读已提交、可重复读、串行化)加以解决。MySQL默认使用可重复读级别,兼顾性能与数据一致性需求。
651 3
|
11月前
|
存储 关系型数据库 MySQL
MySQL数据库索引的数据结构?
MySQL中默认使用B+tree索引,它是一种多路平衡搜索树,具有树高较低、检索速度快的特点。所有数据存储在叶子节点,非叶子节点仅作索引,且叶子节点形成双向链表,便于区间查询。
279 4
|
11月前
|
搜索推荐
解释什么是不稳定排序
本段内容介绍排序算法的稳定性。当排序时存在多个值相等的元素(如红桃五和黑桃五),若它们在排序前后的相对位置保持不变,则该排序算法是稳定的;反之,若其顺序发生变化,则为不稳定排序算法。
111 0
|
前端开发 安全 Java
2025春招,Spring 面试题汇总
本文详细整理了2025年春招必备的Spring面试题,分为基础和高级两大部分,帮助求职者全面掌握Spring相关知识点,结合实际项目经验,提升面试成功率。内容涉及Spring框架、AOP、事务管理、数据库集成、Spring Boot、Spring Security、微服务架构等,助力你在春招中脱颖而出。
3394 0
|
11月前
|
大数据 数据库 索引
索引创建的原则
本文介绍了创建数据库索引的六大原则,帮助提升查询效率。内容包括:为大数据量表建索引、常用查询字段建索引、高区分度列优先、varchar字段使用前缀索引、合理使用联合索引,以及控制索引数量以平衡查询与维护成本。
272 8
|
11月前
|
算法 搜索推荐
选择排序的实现思路
该内容描述了选择排序算法的基本思想:将数组分为“未排序”和“已排序”两部分,每轮从“未排序”中选出最大元素放到“已排序”中,重复此过程直至“未排序”只剩一个元素,排序结束。
162 1
|
Java 数据库连接 Maven
最新版 | 深入剖析SpringBoot3源码——分析自动装配原理(面试常考)
自动装配是现在面试中常考的一道面试题。本文基于最新的 SpringBoot 3.3.3 版本的源码来分析自动装配的原理,并在文未说明了SpringBoot2和SpringBoot3的自动装配源码中区别,以及面试回答的拿分核心话术。
1342 2
最新版 | 深入剖析SpringBoot3源码——分析自动装配原理(面试常考)

热门文章

最新文章