首页 > 其他分享 >聚簇索引 辅助索引

聚簇索引 辅助索引

时间:2024-07-15 22:28:54浏览次数:24  
标签:辅助 树结构 聚簇 索引 InnoDB 键值 数据 主键

在InnoDB存储引擎中,确实使用了B+树结构来组织数据和索引,但是InnoDB采用了一种特殊的方式来结合数据和索引,这种结构被称为聚集索引(Clustered Index)。

在InnoDB中,主键索引就是聚集索引。每张表的数据行实际上都存储在主键索引的叶子节点上。这意味着数据和主键索引是物理上紧密相连的,它们实际上是存储在同一颗B+树上的。当你按照主键查询数据时,你实际上就是在遍历这个B+树。

非主键索引(Secondary Indexes),也被称作辅助索引,它们同样使用B+树结构,但与聚集索引不同,非主键索引的叶子节点不存储完整的行数据,而是存储主键值以及指向实际数据行的指针。当使用非主键索引进行查询时,InnoDB首先会查找非主键索引树,找到对应的主键值,然后再通过这个主键值去聚集索引中获取完整的行数据,这一过程被称为回表(Index Lookup)。

这样的设计有以下优点:
- 减少了磁盘I/O次数,因为主键索引包含了实际的数据。
- 对于范围查询和排序查询,B+树结构可以有效地利用顺序访问的特点,提高查询效率。
- 数据和索引的紧密结合有助于提高数据局部性,优化缓存性能。

然而,这也意味着修改主键(例如增加或者删除列)可能是一个昂贵的操作,因为这将涉及到整个B+树的重构。同时,如果主键不是自然增长的,比如使用UUID作为主键,那么可能导致B+树的碎片化,影响性能。

标签:辅助,树结构,聚簇,索引,InnoDB,键值,数据,主键
From: https://blog.csdn.net/weixin_43803780/article/details/140450889

相关文章

  • Elasticsearch 基于查询数据导出,导入到索引
    elasticsearch导出elasticdump--input="http://username:password@domain-es.jdl.com/domain_slowlog_es_*"--output="D:\Software\es_slow_log_total.json"--type=data--limit=1000--headers="{\"Content-Type\":\&......
  • 为什么MySQL会选择B+树作为索引
    为什么MySQL会选择B+树作为索引在数据库管理系统中,索引是提升查询效率的关键技术之一。MySQL作为广泛使用的关系型数据库管理系统,其核心存储引擎InnoDB选择B+树作为其索引结构,这一选择背后蕴含了深刻的性能和存储效率考量。本文将简要介绍B+树的基本概念,阐述MySQL选择B+树......
  • 探索GraphRAG:构建高效的知识图谱索引与查询引擎
    GraphRAG系统简介GraphRAG是一个基于图的检索增强生成系统,它通过索引文本数据,然后使用这些索引数据来回答有关文档的问题。系统的核心在于其索引管道和查询引擎,它们共同工作,以提供快速且准确的信息检索服务。环境准备在开始之前,请确保你的开发环境中已安装Python3.10至3......
  • ELK Stack - Elasticsearch · 搜索引擎 · 部署应用 · 内部结构 · 倒排索引 · 服
    系列目录ELKStack-Elasticsearch·搜索引擎·全文检索·部署应用·内部结构·倒排索引·服务接入ELKStack-Kibana(待续)ELKStack-Logstash(待续)ELKStack-Beats(待续)ELKStack-ApplicationPerformanceMonitoring(待续)本章基于:RHELinux......
  • 面试篇-Mysql-1+慢sql+索引
    文章目录前言一、线上的慢sql你们是怎么发现和处理的1.1发现慢sql:1.1.1通过开启mysql的慢日志:1.1.2通过Skywalking平台:1.2针对慢sql你们是怎么处理的:二、你了解过索引吗2.1索引是什么:2.1.1索引为什么要用b+树实现,二叉树,b树不行吗2.1.2你都知道哪些索引:2.1.3......
  • 参与辅助服务的用户侧储能优化配置及经济分析(Matlab代码实现)
    ......
  • FOFA网络空间安全搜索引擎的使用
    一、FOFA是什么?FOFA是一款网络空间测绘的搜索引擎,旨在帮助用户以搜索的方式查找公网上的互联网资产。简单来说,FOFA的使用方式类似于谷歌或百度,用户可以输入关键词来匹配包含该关键词的数据。不同的是,这些数据不仅包括像谷歌或百度一样的网页,还包括像摄像头、打印机、数据库......
  • 【计算机毕业设计】003基于weixin小程序教学辅助
    ......
  • 【计算机毕业设计】003基于weixin小程序教学辅助
    ......
  • MySQL8.0 新特性函数索引
    MySQL8.0中的函数索引(Function-BasedIndex)是一种高级索引特性,它允许数据库管理员或开发者对表中的列执行表达式计算后的结果进行索引,而不是直接对列值或列的前缀值进行索引。这种索引技术可以显著提高查询性能,特别是在需要对列值进行复杂计算或转换的查询场景中。MySQL8......