当前位置: 首页 > news >正文

MySql——聚簇索引(主键索引)和非聚簇索索引(非主键索引)引区别(即聚集索引和非聚集索引区别)

目录

    • 一、聚簇索引(主键索引)和非聚簇索索引(非主键索引)区别
      • 1.1、聚簇索引(主键索引)和非聚簇索索引(非主键索引)结构图解
      • 1.2、从主键和非主键方面理解区别
        • 1.2.1、从主键方面理解
        • 1.2.2、从非主键方面理解
      • 1.3、从存储引擎方面理解区别
    • 二、聚簇索引和非聚簇索引的总结
      • 2.1、聚集索引
      • 2.2、非聚集索引
    • 三、主键索引和非主键索引的总结
      • 3.1、聚集索引(主键索引)
      • 3.1、非聚集索引(非主键索引)

一、聚簇索引(主键索引)和非聚簇索索引(非主键索引)区别

1.1、聚簇索引(主键索引)和非聚簇索索引(非主键索引)结构图解

  • 结构图解
    在这里插入图片描述

1.2、从主键和非主键方面理解区别

1.2.1、从主键方面理解
  • 可以简单的把主键索引理解为聚集索引,因为我们创建了一个主键索引,在InnoDB引擎下它默认的数据结构就是一个B+树在叶子节点当中,可以看到它除了存储索引外还存储了这一整行数据,所以它的索引跟数据是聚集在一起的,所有叫做聚簇索引。如下图所示:
    在这里插入图片描述
1.2.2、从非主键方面理解
  • 可以简单的把非主键索引理解为非聚簇索,或者叫二级索引。因为在叶子节点当中,可以看到它除了储索引外还存储了这个索引对应的主键,如果当前的查询查询到这个字段索引以外其他的数据,就需要涉及到回表,回到主键索引的这棵B+树,然后根据该属性值的主键再次从树的根节点出发,找到该属性值对应的这个主键索引,从而可以查询到其他的数据。
  • 当使用非聚簇索查询索引以外的数据需要涉及到回表,所以它的性能就会变差,如果非聚簇索只查询索引的数据,我们称之为索引覆盖。它
http://www.dtcms.com/a/331924.html

相关文章:

  • MyBatis学习总结(六)
  • 【面板数据】各省及市省级非物质文化遗产数据合集(2005-2024年)
  • 《嵌入式 C 语言编码规范与工程实践个人笔记》参考华为C语言规范标准
  • 解锁 Docker:一场从入门到源码的趣味解谜之旅
  • 卸载python遇到msi文件权限不足
  • Python闭包详解:理解闭包与可变类型和不可变类型的关系
  • 新手如何高效运营亚马逊跨境电商:从传统SP广告到DeepBI智能策略
  • docker 容器管理入门教程
  • 身份全景图
  • Encoder-Decoder Model编码器-解码器模型
  • 【学习笔记】Java并发编程的艺术——第4章 Java并发编程基础
  • CMake笔记:Alias Target在哪些地方可以使用
  • 傅里叶变换+attention机制,深耕深度学习领域
  • shellgpt
  • Linux计划任务
  • 当GitHub宕机时,我们如何协作?
  • nginx入门需知(含安装教程)
  • OpenCV图像注册模块
  • Spring 三级缓存三个小问题记录
  • linux常见文件系统+用户管理+常见故障
  • Redis面试精讲 Day 21:Redis缓存穿透、击穿、雪崩解决方案
  • 纸箱拆垛:物流自动化中的“开箱密码”与3D视觉的智能革命
  • JavaScript方法借用技术详解
  • 【软件安装|1】CentOS7最新可用国内 yum 镜像源配置和Linux版MySQL8.0安装及其相关知识
  • 6、C 语言指针初阶知识点总结
  • 金融新政激活工业“智脑”,鸿道操作系统筑基新型工业化
  • 70亿参数让机器人“开窍“:英伟达Cosmos Reason如何让AI理解物理世界
  • 批量标准化、模型的保存和加载
  • 20道DOM相关前端面试题
  • CLAM复现问题记录