当前位置: 首页 > 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.lryc.cn/news/621087.html

相关文章:

  • IPv6互联网地址解析
  • [论文阅读] 人工智能 + 软件工程 | 代码变更转自然语言生成中的幻觉问题研究解析
  • 便宜云服务器持续更新
  • 代币经济模型设计指南:如何通过代币化赋能实体业务与DAO治理?
  • C++ STL学习 之 泛型编程
  • Spring Boot + Redis Sentinel (一主两从)测试案例
  • 面试题之项目中git如何进行管理
  • CVE-2014-6271(bash破壳漏洞 )
  • C语言预处理过程详细介绍
  • 集成电路学习:什么是Machine Learning机器学习
  • STM32F103 basic定时器的介绍和应用
  • Android UI(一)登录注册 - Compose
  • 有哪些开源卫星姿控软件
  • 具身智能Scaling Law缺失:机器人界的“摩尔定律“何时诞生?
  • 用SQL实现对DuckDB rusty_sheet插件批量测试
  • 树莓派 4B 上部署 Minecraft PaperMC 1.20.x 的一键部署脚本
  • Qwen2-VL-2B 轻量化部署实战:数据集构建、LoRA微调、GPTQ量化与vLLM加速
  • Java Stream API:让业务数据处理更优雅
  • HTTP协议深度解析
  • 多种适用于 MCU 固件的 OTA 升级方案
  • STM32学习笔记11-通信协议-串口基本发送与接收
  • Autoppt-AI驱动的演示文稿生成工具
  • pygame的帧处理中,涉及键盘的有`pg.event.get()`与`pg.key.get_pressed()` ,二者有什么区别与联系?
  • ModuleNotFoundError: No module named ‘vllm._C‘
  • 界面设计风格解析 | ABB 3D社交媒体视觉效果设计
  • 3ds MAX文件/贴图名称乱码?6大根源及解决方案
  • tlias智能学习辅助系统--Maven 高级-私服介绍与资源上传下载
  • Java 技术栈中间件优雅停机方案设计与实现全景图
  • FreeSWITCH 对接阿里云流式 TTS:让大模型通话秒级响应
  • Elasticsearch ABAC 配置:基于患者数据的动态访问控制