谢邀

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会发生回表操作?相关推荐

  1. c++ 虚函数_到底什么情况下会合成默认构造函数?

    来源:https://www.cnblogs.com/QG-whz/p/4676481.html 作者:good luck 编辑:公众号[编程珠玑] 编辑注:没有构造函数的时候编译器一定会生成默认构造 ...

  2. mysql update 负数_解决并发情况下库存减为负数问题--update2016.04.24

    场景: 一个商品有库存,下单时先检查库存,如果>0,把库存-1然后下单,如果<=0,则不能下单,事务包含两条sql语句: select quantity from products WHE ...

  3. windows下mysql主从同步_详解windows下mysql的主从同步

    半路出家到Java,刚开始听说到说程序支持读写分离感觉特别高大上,也一直没接触 偶然的机会接触到了,就一定得记下来. 今天先讲讲数据库的主从同步,两个好处: 是读写分离可以用上.比如 写操作就写到主数 ...

  4. mysql双击同步_求助,WINDOWS下MYSQL双机同步的问题

    展开全部 1.1 环境搭建 准备两台Windows NT 主机,分别安装好iKEY Server windows 版本,确定版本无误,确保e5a48de588b662616964757a6869646 ...

  5. 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_ ...

  6. Linux查询MySQL用户名密码_请教,linux下mysql如何查询用户的密码

    匿名用户 1级 2016-04-23 回答 linux忘记mysql密码处理方法,下面提供了5种linux忘记mysql密码找回方法哦. 方法一: # /etc/init.d/mysql stop # ...

  7. 什么情况下mysql innodb会发生回表操作?

    什么情况下mysql innodb会发生回表操作? 回表是什么意思? 什么是索引覆盖? 为什么设置了命中了索引但还是造成了全表扫描 MySQL innodb的 主键索引是簇集索引(聚簇索引),也就是索 ...

  8. mysql深度解析_百万级数据下的mysql深度解析

    mysql 作为一款非常优秀的免费数据库被广泛的使用,平时我们开发的项目数据过百万的时候不多.最近花了大量的时间来深入的研究mysql百万级数据情况下的优化. 遇到了很多问题并解决了他们,特此分享给大 ...

  9. mysql基础14(关于mysql数据库在没有主键情况下去除重复数据办法)

    关于mysql数据库在没有主键情况下去除重复数据办法 约定 表名:mat 根据 cat 字段去重 新增加主键为 id 步骤 1.为mat新增一列自增主键 alter table mat add col ...

最新文章

  1. chardet坑——比蜗牛还慢
  2. 《疯狂Java讲义》10
  3. 你知道Integer和int的区别吗
  4. 频域补零上采样_AURIX 学习笔记(12)频域法互相关实现超声测距
  5. AT4378-[AGC027D]ModuloMatrix【构造】
  6. java掌握_掌握Java 11的Constantdynamic
  7. AngularJS-liveRoomDirective.js 直播间指令
  8. package.json的进阶
  9. 2021年中国蛋鸡养殖设备市场趋势报告、技术动态创新及2027年市场预测
  10. C站学习导航,想用CSDN学习看我这篇就行了!
  11. GoAhead服务器编程
  12. vim 自动格式化代码快捷键
  13. Java并发指南6:Java内存模型JMM总结
  14. 管理感悟:听课与收获
  15. 大专java方向校招面试找工作知识点技术栈以及实习感受分享-简历分享
  16. mini2440 linux驱动程序,基于linux的mini2440 led驱动及应用程序
  17. 文章随笔日记完全不通呀
  18. #python元组(元组的创建和删除)
  19. 网站设计常用技巧收集整理
  20. 2013-2017:中国 CV(计算机视觉)公司恩仇录

热门文章

  1. pytorch python区别_pytorch源码解析:Python层 pytorchmodule源码
  2. ps制作20种特效文字_ps技巧:给照片制作特效(刀光剑影)
  3. Ant Design Pro 登录流程以及路由权限设置
  4. js正则验证身份证号是否正确
  5. Sql Server 因为触发器问题导致数据库更新报错“在触发器执行过程中引发了错误,批处理已中止”的问题处理...
  6. Linux下des对称性加密
  7. B2B行业网站10种经营模式研究及组合方案
  8. 不用se11创建表结构,作smartforms
  9. JSTL+EL表达式方法获取Oracle的Clob字段内容
  10. 显示来自多个表的数据——JOIN