11. 知道什么是回表查询嘛 ?

简介: 了解回表查询吗?当对表的`name`字段建立索引后,执行`SELECT name,age FROM user WHERE name='Alice'`,数据库首先通过索引找到主键`id=18`,然后依据主键在主索引中获取完整数据记录,这个过程称为回表查询。由于需两次查找,其性能低于直接扫描索引树。

11. 知道什么是回表查询嘛 ?

当我们为一张表的name字段建立了索引 , 执行如下查询语句 :

select name,age from user where name='Alice'

那么获取到数据的过程为 :

  1. 根据name='Alice'查找索引树 , 定位到匹配数据的主键值为id=18

image.png

2.根据id=18到主索引获取数据记录  (回表查询)

image.png

先定位主键值,再定位行记录就是所谓的回表查询,它的性能较扫一遍索引树低

目录
相关文章
|
6天前
|
存储 关系型数据库 索引
10. 在一个非主键字段上创建了索引, 想要根据该字段查询到数据, 需要查询几次 ?
在非主键字段上创建索引,查询数据通常需两次。对于MyISAM,先通过索引找到数据行指针,再获取数据;而InnoDB则先找主键ID,再从主键索引中查找数据。
16 0
|
SQL 关系型数据库 MySQL
MySQL 多表分组后获取每一组的时间最大的那条记录
MySQL 多表分组后获取每一组的时间最大的那条记录
414 0
|
C++ 索引
C/C++编程题之合并表记录
C/C++编程题之合并表记录
|
SQL 关系型数据库 MySQL
解决高并发下insert到数据库表多条记录的问题
解决高并发下insert到数据库表多条记录的问题
401 0
解决高并发下insert到数据库表多条记录的问题
|
SQL 算法 关系型数据库
Mysql查询某条记录在分页的第几页
Mysql查询某条记录在分页的第几页
455 0
|
存储 SQL 关系型数据库
什么是回表查询
这种查询就必须先在索引文件中找到name为小张的索引节点,很明显这个节点里面只有id,因为这张表只有主键索引,再根据id去数据文件查找具体数据
245 0
|
存储 SQL 缓存
为什么索引可以让查询变快?终于有人说清楚了!
上表是一张真实的数据库表,其中每一行是一条记录,每条记录都有字段。假设上面的数据库是一个有10万条记录的大数据库。现在,我们想从10万条记录中搜索一些内容,那么挨着一个一个搜索无疑将花费很长的时间,这个时候我们在数据结构与算法里学的二分查找法就派上了用场。
为什么索引可以让查询变快?终于有人说清楚了!
|
Java 数据库连接 数据库
分页之查询条件丢失问题 | 学习笔记
快速学习分页之查询条件丢失问题
270 0
|
SQL 关系型数据库 MySQL
mysql使用 from两表查询与join两表查询区别
在mysql中,多表连接查询是很常见的需求,在使用多表查询时,可以from多个表,也可以使用join连接连个表这两种查询有什么区别?哪种查询的效率更高呢? 带着这些疑问,决定动手试试1.先在本地的mysql上先建两个表one和twoone表 CREATE TABLE `one` ( `id`.
5152 0
不设外键:来看看上次预留的连接查询接口
postman接口测试 你见过一个类中注入很多的bean吗?比如说像这样 image 这个是接着上次的文章,虽然也是用程序实习关联的一种解决方案 再来看看Controller中的方法 (service中的方法就是上次文章中的方法...
951 0