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

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.xdnf.cn/news/18006.html

相关文章:

  • Java 学习笔记(基础篇2)
  • Docker build创建镜像命令入门教程
  • **超融合架构中的发散创新:探索现代编程语言的挑战与机遇**一、引言随着数字化时代的快速发展,超融合架构已成为IT领域的一种重要趋势
  • ts概念讲解
  • Vue 3 + TypeScript:package.json 示例 / 详细注释说明
  • 基于Java飞算AI的Spring Boot聊天室系统全流程实战
  • 快速部署一个鉴黄服务
  • 前端vue框架
  • 【机器人-开发工具】ROS 2 (4)Jetson Nano 系统Ubuntu22.04安装ROS 2 Humble版本
  • 【Java 后端】Spring Boot 集成 JPA 全攻略
  • Nginx学习笔记(九)—— Nginx Rewrite深度解析
  • 版本更新!FairGuard-Mac加固工具已上线!
  • win11右键菜单改回win10样式
  • Data Augmentation数据增强
  • EtherCAT概念介绍
  • EchoEar喵伴接入小聆AI,MCP服务轻松体验,智能升级!
  • 低配硬件运行智谱GLM-4.5V视觉语言模型推理服务的方法
  • 如何基于langchain基类LLM自定义大模型
  • 飞算JavaAI开发全流程解析:从自然语言到可运行工程的智能进化
  • 从零开始学Python之数据结构(字符串以及数字)
  • 深入解析 Chrome UI 布局配置的设计思想与实现机制
  • STL算法【常用的算数生成算法】
  • vue3+leaflet案例:告警系统GIS一张图(附源码下载)
  • 基于大语言模型的爬虫数据清洗与结构化
  • 手机实时提取SIM卡打电话的信令声音-整体解决方案规划
  • 《WebGL中FBO的底层运行逻辑》
  • Day57--图论--53. 寻宝(卡码网)
  • 【前端工具】使用 Node.js 脚本实现项目打包后自动压缩
  • 计算机视觉(opencv)实战三——图像运算、cv2.add()、cv2.addWeighted()
  • Docker + Cronicle + Traefik 搭建服务器计划任务工具