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

二级索引详解

二级索引详解

二级索引(Secondary Index)是数据库系统中除主键索引外的附加索引结构,用于加速基于非主键列的查询操作。以下是关于二级索引的全面解析:

一、核心概念

特性 主键索引 (Primary Index) 二级索引 (Secondary Index)
唯一性 必须唯一 可以唯一或非唯一
数量 每表只有一个 每表可创建多个
存储关系 直接指向数据行 指向主键值或数据行地址
作用 保证数据唯一性和完整性 优化查询性能

二、工作原理

1. 基本结构

  • 索引键:创建索引的列或列组合
  • 指针:指向主键值或数据行的物理地址

2. 查询流程

查询请求 → 通过二级索引找到主键值 → 通过主键索引定位数据行

(这个过程称为"回表"操作)

三、类型分类

1. 按数据结构

类型 描述 适用场景
B+树索引 最常用,支持范围查询 大多数业务场景
哈希索引 精确匹配快,不支持范围查询 等值查询为主的场景
全文索引 文本内容搜索 文章、商品描述等搜索

2. 按功能特性

类型 特点
唯一索引 确保索引列值唯一 (UNIQUE约束)
复合索引 多列组合的索引,遵循最左前缀原则
覆盖索引 索引包含查询所需全部字段,避免回表操作
函数索引 基于列值计算结果的索引(如CREATE INDEX idx ON tbl(UPPER(name))

四、不同数据库的实现

1. MySQL(InnoDB)

  • 二级索引存储主键值
  • 回表通过主键索引完成
  • 示例:
http://www.dtcms.com/a/111244.html

相关文章:

  • 从基础算力协作到超智融合,超算互联网助力大语言模型研习
  • C++学习笔记之 模板|函数模板|类模板
  • 嵌入式学习笔记——ARM-中断与异常
  • R5周:天气预测
  • linux 进程/线程设置核亲和性
  • MySQL统计信息
  • JS dom修改元素的style样式属性
  • 删除Linux服务器上多余的系统启动项,并重装Ubuntu系统
  • Java 连接 WebSocket 入门教程
  • 【Web 服务器】的工作原理
  • 第十八节课:Python编程基础复习
  • wx206基于ssm+vue+uniapp的优购电商小程序
  • NLP高频面试题(三十五)——LLaMA / ChatGLM / BLOOM的区别
  • AI + 慢病逆转 1
  • USB传输(Transaction)过程简介
  • swift-oc和swift block和代理
  • ElasticSearch JavaRestClient查询之高亮显示
  • JS用ES6和ES5分别实现:8字节长整数和字节数组的互转
  • 软考系统架构师 — 4 嵌入式软件
  • H.266/VVC SCC技术学习:块差分脉冲编码调整(block differential pulse coded modulation, BDPCM)
  • 生信入门:专栏概要与内容目录
  • AI算法大全初见面
  • Redisson使用详解
  • 《Maven高级应用:继承聚合设计与私服Nexus实战指南》
  • 嵌入式学习笔记——SPI协议
  • “一路有你”公益行携手《东方星动》走进湖南岳阳岑川镇中心小学
  • AI Agent设计模式二:Parallelization
  • 【新能源汽车整车动力学模型深度解析:面向MATLAB/Simulink仿真测试工程师的硬核指南】
  • PyTorch:解锁AI新时代的钥匙
  • Python基于时间序列分析的降雨量预测系统的设计与实现【附源码、文档说明】