MySQL回表查询

一.MySQL索引类型

1.普通索引:最基本的索引,没有任何限制

2.唯一索引(unique index):索引列的值必须唯一,但是允许为空

3.主键索引:特殊的唯一索引,但是不允许为空,一般在建表的时候同时创建主键索引

4.组合索引:指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用组个索引时遵循最左前缀集合

5.全文索引:主要用来查找文本中的关键字,而不是直接与索引中的值相比较

二.回表查询

什么是回表查询?

首先,从InnoDB说起,InnoDB的索引有两种,聚集索引(clustered index)和普通索引(secondary index),聚集索引的叶子结点存储的是行记录,若表定义了PK,那么PK就是聚集索引(因此PK查询非常快,直接定位行记录),若表没有定义PK,那么第一个not null unique列就是聚集索引。普通索引的叶子结点存储的是主键值。

如:t(id PK, name KEY, sex, flag);id为聚集索引,name为普通索引

执行过程:

对于聚集索引,直接定位行记录

对于普通索引,需要遍历两遍索引树,如下图所示,先通过普通索引定位到id,再通过聚集索引定位到行记录。

这就是所谓的回表查询,先定位主键值,再定位行记录,性能比聚集索引低。

所以,避免回表查询?

直接使用聚集索引(主键或者第一个唯一索引)即可。

Original: https://www.cnblogs.com/xiuercui/p/13453226.html
Author: 程序界第一佳丽
Title: MySQL回表查询

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/577543/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 关于在Python2中使用列表推导式会遇到的问题

    摘自《流畅的Python》第二部分第二章2.2 Python 2.x 中,在列表推导中 for 关键词之后的赋值操作可能会影响列表推导上下文中的同名变量。像下面这个 Python …

    Linux 2023年6月6日
    0106
  • centos快速搭建nfs共享

    一、nfs服务器端 01.安装nfs服务 yum -y install nfs-utils 02.创建存储目录 mkdir -p /data/2haohr_backup 03.设置…

    Linux 2023年6月6日
    0108
  • 制作pip离线源

    一、下载指定的包到相应的文件夹 (1)、创建存放安装包的目录:(联网环境) bash;gutter:true; pip list #查看安装的包 mkdir packs pip i…

    Linux 2023年6月8日
    0112
  • Redis

    当你的才华不能撑起你的野心时,就是你该选择学习的时候了! Original: https://www.cnblogs.com/hofmann/p/16056013.htmlAuth…

    Linux 2023年5月28日
    085
  • 域控制器所需的DNS SRV记录没有在DNS中注册的解决方法

    搭建完AD和DNS之后,发现在DNS的正向查找区域没有SRV记录,并且客户端无法加入到AD中,如下 解决方法 删除正向查找区域下的目录 然后选择”正向查找区域&#822…

    Linux 2023年6月14日
    0105
  • 不可不知的软件架构模式

    什么是系统架构(Architecture) 设计不仅仅指的是外观和感觉,它还包括运作方式。—— 史蒂夫·乔布斯 系统架构(System Architecture),软件架构(Sof…

    Linux 2023年6月14日
    077
  • 【论文笔记】(知识蒸馏)Distilling the Knowledge in a Neural Network

    摘要 模型平均可以提高算法的性能,但是计算量大且麻烦,难以部署给用户。《模型压缩》这篇论文中表明,知识可以从复杂的大型模型或由多个模型构成的集成模型中压缩并转移到一个小型模型中,本…

    Linux 2023年6月7日
    0171
  • haproxy-详解

    四层: LVS (Linux Virtual Server)HAProxy (High Availability Proxy)Nginx (1.9以上) 七层: HAProxyNg…

    Linux 2023年5月27日
    076
  • 招人、找人、找大牛啦!

    招人、找人、找大牛啦! 有意从事、投资TO B业务,含新型操作系统、大数据、人工智能、高性能计算、分布式应用软件的研发、高管、合伙人朋友请联系我,我司正在启动新一轮业务拓展!详情私…

    Linux 2023年6月6日
    090
  • 020 Linux 20个宝藏命令案例

    1 JDK 相关的查找命令 (1)确认是否安装 JDK (2)查找 java 命令目录的位置 (3)查找 java 命令的位置的软链地址 (4)通过软链地址查找 JDK 的安装目录…

    Linux 2023年5月27日
    084
  • Nginx 配置文件说明

    bash;gutter:true;</p> <h1>定义Nginx运行的用户和用户组</h1> <p>user www www;&l…

    Linux 2023年6月8日
    093
  • CSS中content属性的妙用

    前言 本文讲解CSS中使用频率并不高的content属性,通过多个实用的案例,带你由浅入深的掌握content的用法,让代码变得更加简洁、高效。 定义 W3school中这样定义:…

    Linux 2023年6月7日
    0132
  • [云原生]Kubernetes-实战入门(第4章)

    一、Namespace 二、Pod 三、Label 四、Deployment 五、Service 参考: Kubernetes(K8S) 入门进阶实战完整教程,黑马程序员K8S全套…

    Linux 2023年6月13日
    0114
  • Linux 下 xargs 命令

    xargs 常常被大家忽略的一个命令,对它的一些用法很多人可能不熟悉,其实它是一个功能强大的命令,特别是在结合管道进行批量处理方面 语法 xargs 语法格式如下 xargs [O…

    Linux 2023年6月13日
    0113
  • ERROR: Exception when publishing, exception message [Failed to connect and initialize SSH connection

    jenkins 在构建时连接其他部署节点的服务器时报错,ERROR: Exception when publishing, exception message [Failed to…

    Linux 2023年6月14日
    092
  • 经典算法学习-计算汉明权重 SWAR(SIMD within a register)

    计算汉明权重算法 SWAR(SIMD within a register) 参考文章: [1] 简书:计算汉明权重的SWAR(SIMD within a Register)算法ht…

    Linux 2023年6月6日
    077
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球