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,再从主键索引中查找数据。
43 0
|
3月前
|
SQL 移动开发 Oracle
SQL查询连续六天数据记录的技巧与方法
在数据库查询中,实现针对连续几天(如连续六天)的数据筛选是一个常见且稍具挑战性的任务
|
6月前
|
SQL 关系型数据库 MySQL
简简单单 My SQL 学习笔记(1)——表中数据的整删改查
简简单单 My SQL 学习笔记(1)——表中数据的整删改查
|
存储 SQL Oracle
Oracle优化避免索引失效
Oracle优化避免索引失效
367 0
|
SQL 存储 NoSQL
明明加了唯一索引,为什么还是产生了重复数据?
前段时间我踩过一个坑:在mysql8的一张innodb引擎的表中,加了唯一索引,但最后发现数据竟然还是重复了。
|
存储 SQL 缓存
为什么索引可以让查询变快?终于有人说清楚了!
上表是一张真实的数据库表,其中每一行是一条记录,每条记录都有字段。假设上面的数据库是一个有10万条记录的大数据库。现在,我们想从10万条记录中搜索一些内容,那么挨着一个一个搜索无疑将花费很长的时间,这个时候我们在数据结构与算法里学的二分查找法就派上了用场。
为什么索引可以让查询变快?终于有人说清楚了!
|
SQL 算法 关系型数据库
Mysql查询某条记录在分页的第几页
Mysql查询某条记录在分页的第几页
512 0
|
存储 SQL 关系型数据库
什么是回表查询
这种查询就必须先在索引文件中找到name为小张的索引节点,很明显这个节点里面只有id,因为这张表只有主键索引,再根据id去数据文件查找具体数据
276 0
|
SQL 关系型数据库 MySQL
mysql使用 from两表查询与join两表查询区别
在mysql中,多表连接查询是很常见的需求,在使用多表查询时,可以from多个表,也可以使用join连接连个表这两种查询有什么区别?哪种查询的效率更高呢? 带着这些疑问,决定动手试试1.先在本地的mysql上先建两个表one和twoone表 CREATE TABLE `one` ( `id`.
5581 0