mysql中的回表操作
什么是回表查询?
一般情况下是:先到普通索引上定位主键值,再到聚集索引上定位行记录,它的性能较扫一遍索引树低。
具体解释:
我们自己建的索引不管是单列索引还是联合索引,都称为普通索引,主键索引是聚簇索引,也就是索引的叶子节点存的是整个单条记录的所有字段值。每个普通索引就对应着一颗独立的索引B+树,索引 B+ 树的节点仅仅包含了索引里的几个字段的值以及主键值。当你执行一条sql语句时,需要从两个b+索引中去取数据。
在什么情况会出现回表操作?
举个例子:
表tbl
有a,b,c
三个字段,其中 a
是主键,b
上建了索引,然后编写sql语句SELECT * FROM tbl WHERE a=1
这样不会产生回表,因为所有的数据在a的索引树
中均能找到;
如果是SELECT * FROM tbl WHERE b=1
这样就会产生回表,因为where条件是b
字段,那么会去b的索引树
里查找数据,但b
的索引里面只有a,b
两个字段的值,没有c
,那么这个查询为了取到c
字段,就要取出主键a
的值,然后去a
的索引树去找c
字段的数据。查了两个索引树,就出现了回表操作。
什么是索引覆盖?
简单说就是, 索引列+主键 包含 SELECT 到 FROM之间查询的列 。就是索引覆盖。可以不用去进行回表操作。
为什么设置了命中了索引但还是造成了全表扫描
就是虽然命中了索引,但在叶子节点查询到记录后还要大量的回表,优化器认为不如直接去扫描全表。
mysql中的回表操作相关推荐
- 什么情况下mysql innodb会发生回表操作?
什么情况下mysql innodb会发生回表操作? 回表是什么意思? 什么是索引覆盖? 为什么设置了命中了索引但还是造成了全表扫描 MySQL innodb的 主键索引是簇集索引(聚簇索引),也就是索 ...
- mysql回表_到底什么情况下mysql innodb会发生回表操作?
谢邀 MySQL innodb的主键索引是簇集索引,也就是索引的叶子节点存的是整个单条记录的所有字段值,不是主键索引的就是非簇集索引,非簇集索引的叶子节点存的是主键字段的值.回表是什么意思?就是你执行 ...
- Mysql中的回表查询
基础知识 Mysql中的B-Tree和B+Tree原理解析 MySQL MyISAM和Innodb索引实现原理分析 什么是回表查询 注意:mysql默认使用的innodb引擎,主键索引 == 聚集索引 ...
- mysql 操作表的例子,mysql中库和表的简单操作总结(附示例)
本篇文章给大家带来的内容是关于mysql中库和表的简单操作总结(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一. 库的操作 1.创建数据库 创建数据库: create d ...
- mysql中视图和表的区别及联系_MySQL中Update、select联用操作单表、多表,及视图与临时表的区别...
一.MySQL中使用从表A中取出数据来更新表B的内容 例如:要update表data中的一些列属性,但是修改属性的内容来源是来自表chanpin.SQL语言中不要显示的出现select关键字 upda ...
- MySQL中的多表连接
MySQL中的多表连接 当查询的数据并不是来源一个表时,需要使用多表链接操作完成查询.根据不同表中的数据之间的关系查询相关联的数据. 一.语法结构 使用一个表在多个表中查询数据: Where子句中写连 ...
- mysql的json函数与实例_Mysql实例详解Mysql中的JSON系列操作函数
<Mysql实例详解Mysql中的JSON系列操作函数>要点: 本文介绍了Mysql实例详解Mysql中的JSON系列操作函数,希望对您有用.如果有疑问,可以联系我们. MYSQL必读前言 ...
- (转)Hibernate中的多表操作
http://blog.csdn.net/yerenyuan_pku/article/details/70556208 Hibernate中的多表操作 在实际开发中,我们不可能只是简简单单地去操作单表 ...
- 在MySQL中实现交叉表查询2(动态交叉表)
在MySQL中实现交叉表查询2(动态交叉表) 交叉表分为静态交叉表和动态交叉表.其中静态交叉表中的列是固定的,因此相对容易实现:而动态交叉表中的列需要动态生成. 一.静态交叉表的实现 参见上一篇文章: ...
最新文章
- 牲畜体表信息的三维重建
- html Qestionnaire表单
- [文件系统]文件系统学习笔记(十)---杂项
- Python入门100题 | 第021题
- Golang 的字符编码与 regexp
- 【数据分析实例】6000 条倒闭企业数据分析
- coxphfit+matlab,Cox Proportional Hazards Model
- 中文论文万能句型_干货|SCI论文写作的万能句型~
- fastdfs-client-java操作fastdfs
- 99个wordpress经典插件
- [论文总结] 智慧农业论文摘要阅读概览
- android:digits 代码设置,EditText中android:digits失效问题
- 用户体验与可用性测试
- 转载:保护 Web 服务器的安全
- 关于Python绘制正态分布图(概率密度分布)以及遇到的问题(label无法显示)
- 前端框架,库,组件,插件,控件的理解
- 大数据毕设 - 大数据二手房数据分析与可视化(python 爬虫)
- cf修改游戏客户端是什么意思_cf封号原因是非法篡改游戏客户端是什么意思
- 剑指Offer——求1+2+3+...+n
- 新版qq虚拟摄像头颜色不正常_分享 | 在线教学常见问题QQ直播、视频通话、群课堂...