mysql回表_到底什么情况下mysql innodb会发生回表操作?
谢邀
MySQL innodb的主键索引是簇集索引,也就是索引的叶子节点存的是整个单条记录的所有字段值,不是主键索引的就是非簇集索引,非簇集索引的叶子节点存的是主键字段的值。回表是什么意思?就是你执行一条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里面。或者b,c建联合索引。但具体情况要具体分析,索引字段多了,存储和插入数据时的消耗会更大。这是个平衡问题。
mysql回表_到底什么情况下mysql innodb会发生回表操作?相关推荐
- c++ 虚函数_到底什么情况下会合成默认构造函数?
来源:https://www.cnblogs.com/QG-whz/p/4676481.html 作者:good luck 编辑:公众号[编程珠玑] 编辑注:没有构造函数的时候编译器一定会生成默认构造 ...
- mysql update 负数_解决并发情况下库存减为负数问题--update2016.04.24
场景: 一个商品有库存,下单时先检查库存,如果>0,把库存-1然后下单,如果<=0,则不能下单,事务包含两条sql语句: select quantity from products WHE ...
- windows下mysql主从同步_详解windows下mysql的主从同步
半路出家到Java,刚开始听说到说程序支持读写分离感觉特别高大上,也一直没接触 偶然的机会接触到了,就一定得记下来. 今天先讲讲数据库的主从同步,两个好处: 是读写分离可以用上.比如 写操作就写到主数 ...
- mysql双击同步_求助,WINDOWS下MYSQL双机同步的问题
展开全部 1.1 环境搭建 准备两台Windows NT 主机,分别安装好iKEY Server windows 版本,确定版本无误,确保e5a48de588b662616964757a6869646 ...
- linux mysql utf-8编码_笔记:linux下mysql设置utf-8编码方法
一:查看mysql版本 1.1 mysql –V 在终端界面输入上面命令.显示如下: mysql Ver 14.14 Distrib 5.5.35, fordebian-linux-gnu (x86_ ...
- Linux查询MySQL用户名密码_请教,linux下mysql如何查询用户的密码
匿名用户 1级 2016-04-23 回答 linux忘记mysql密码处理方法,下面提供了5种linux忘记mysql密码找回方法哦. 方法一: # /etc/init.d/mysql stop # ...
- 什么情况下mysql innodb会发生回表操作?
什么情况下mysql innodb会发生回表操作? 回表是什么意思? 什么是索引覆盖? 为什么设置了命中了索引但还是造成了全表扫描 MySQL innodb的 主键索引是簇集索引(聚簇索引),也就是索 ...
- mysql深度解析_百万级数据下的mysql深度解析
mysql 作为一款非常优秀的免费数据库被广泛的使用,平时我们开发的项目数据过百万的时候不多.最近花了大量的时间来深入的研究mysql百万级数据情况下的优化. 遇到了很多问题并解决了他们,特此分享给大 ...
- mysql基础14(关于mysql数据库在没有主键情况下去除重复数据办法)
关于mysql数据库在没有主键情况下去除重复数据办法 约定 表名:mat 根据 cat 字段去重 新增加主键为 id 步骤 1.为mat新增一列自增主键 alter table mat add col ...
最新文章
- chardet坑——比蜗牛还慢
- 《疯狂Java讲义》10
- 你知道Integer和int的区别吗
- 频域补零上采样_AURIX 学习笔记(12)频域法互相关实现超声测距
- AT4378-[AGC027D]ModuloMatrix【构造】
- java掌握_掌握Java 11的Constantdynamic
- AngularJS-liveRoomDirective.js 直播间指令
- package.json的进阶
- 2021年中国蛋鸡养殖设备市场趋势报告、技术动态创新及2027年市场预测
- C站学习导航,想用CSDN学习看我这篇就行了!
- GoAhead服务器编程
- vim 自动格式化代码快捷键
- Java并发指南6:Java内存模型JMM总结
- 管理感悟:听课与收获
- 大专java方向校招面试找工作知识点技术栈以及实习感受分享-简历分享
- mini2440 linux驱动程序,基于linux的mini2440 led驱动及应用程序
- 文章随笔日记完全不通呀
- #python元组(元组的创建和删除)
- 网站设计常用技巧收集整理
- 2013-2017:中国 CV(计算机视觉)公司恩仇录
热门文章
- pytorch python区别_pytorch源码解析:Python层 pytorchmodule源码
- ps制作20种特效文字_ps技巧:给照片制作特效(刀光剑影)
- Ant Design Pro 登录流程以及路由权限设置
- js正则验证身份证号是否正确
- Sql Server 因为触发器问题导致数据库更新报错“在触发器执行过程中引发了错误,批处理已中止”的问题处理...
- Linux下des对称性加密
- B2B行业网站10种经营模式研究及组合方案
- 不用se11创建表结构,作smartforms
- JSTL+EL表达式方法获取Oracle的Clob字段内容
- 显示来自多个表的数据——JOIN