了解索引以及原理
索引什么是索引索引是数据库中对表中一列或多列的值进行排序的一种数据结构。索引的作用加快数据检索的速度通过减少查询过程中需要扫描的数据行数。加快表连接和排序索引本身是有序的数据库可以直接利用索引的有序性完成排序避免额外的文件排序Filesort操作。保证数据的唯一性通过创建唯一索引UNIQUE数据库可以强制保证某列或多列数据的唯一性。简单来说就是以存储空间换取查询时间的极大缩短。索引的代价缺点占用存储空间每个索引都需要额外的磁盘空间来存储索引结构。降低写入性能对表进行 INSERT、UPDATE、DELETE 时除了修改数据本身还需要同步维护所有相关索引写操作成本上升。可能失效或误用索引使用不当如违反最左前缀、字段类型不匹配等不仅无法加速反而可能拖慢查询。因此索引并非越多越好需要根据实际查询场景权衡。索引的原理B树B树是 B 树的一种变种。分层的节点结构B树由根节点、内部节点和叶子节点构成。内部节点只记录存储索引键值和指向子节点的指针不存储实际数据。叶子节点所有的数据都存储在叶子节点上这些叶子节点通过双向链表连接形成了一个有序的数据序列。树高稳定所有叶子节点都在同一层这意味着查找任何数据都需要经历相同层数的路径查询时间非常稳定。为什么使用 B树大幅减少磁盘 I/O磁盘 I/O 是数据库操作中最慢的环节。B树通过其矮胖的结构将查找数据所需的磁盘读取次数降到最低通常 2-3 次。每个节点的大小通常被设计为等于一个磁盘页如 MySQL 的 16KB使得一次 I/O 就能读取一个完整的节点。相比之下二叉树等结构在数据量大时树高会急剧增加导致 I/O 次数剧增。卓越的范围查询能力数据库的范围查询如 BETWEEN、、非常频繁。B树的叶子节点通过链表串联一旦定位到范围的起点只需沿着链表顺序扫描即可效率极高。而 B 树的数据分散在各处进行范围查询需要进行复杂的中序遍历效率低下。查询性能稳定在 B树中任何查找都必须从根节点走到叶子节点因此所有查询的路径长度都相同查询效率非常稳定。而在 B 树中数据可能存储在任意节点数据靠近根节点时查询快靠近叶子节点时查询慢性能不稳定。更高的空间利用率由于内部节点不存数据可以存储更多的键值这进一步降低了树的高度也使得数据在磁盘上存储得更紧密具有良好的空间局部性能提高缓存命中率。索引的分类按物理存储方式以 MySQL InnoDB 为例聚集索引Clustered Index索引的叶子节点直接存储整行数据数据即索引主键索引就是聚集索引。每张表只能有一个。非聚集索引二级索引 / Secondary Index叶子节点存储的是主键值而非数据本身需要通过主键再查一次数据。可以有多个。相关概念回表通过非聚集索引查询到主键后再用主键去聚集索引中查找完整数据行的过程。覆盖索引查询所需的列全部包含在索引中时无需回表直接返回结果性能最高。按功能/约束分类主键索引Primary Key唯一且非空InnoDB 中即聚集索引。唯一索引Unique保证列值唯一允许 NULL。普通索引Normal最基本的索引无任何约束。联合索引复合索引 / Composite由多个列组合成的索引遵循最左前缀原则。全文索引Fulltext用于大文本的全文检索。前缀索引对字符串的前 N 个字符建立索引节省空间。联合索引与最左前缀原则联合索引由多列组成例如INDEX(a, b, c)内部排序规则是先按 a 排序a 相同再按 b 排序b 相同再按 c 排序。最左前缀原则查询条件必须从联合索引的最左侧列开始且不能跳过中间列否则无法完全利用该索引。例如对INDEX(a, b, c)能走索引where a ?、where a ? and b ?、where a ? and b ? and c ?不能走索引where b ?、where c ?、where a ? and c ?跳过 b只能用到 a 这一列索引失效的常见场景对索引列使用函数或表达式运算如where year(create_time) 2025隐式类型转换如字符串列与数字比较where phone 13800000000使用like以%开头如where name like %张三联合索引违反最左前缀原则查询条件使用OR且存在非索引列使用!、、not in等可能不走索引索引列参与计算如where age 1 20建立索引的建议为 WHERE、ORDER BY、GROUP BY、JOIN 中频繁使用的列建索引。区分度高选择性好的列适合建索引如主键、唯一字段。联合索引要注意列的顺序把区分度高、查询频繁的列放在最左。避免在频繁更新的列上建过多索引。尽量使用覆盖索引减少回表。

相关新闻

电力系统多时间尺度储能调度优化策略

电力系统多时间尺度储能调度优化策略

1. 项目背景与核心挑战 现代电力系统正面临可再生能源大规模并网带来的波动性挑战。以风光为代表的新能源发电具有显著的间歇性和不确定性,这对电网的实时平衡提出了更高要求。储能电站作为灵活调节资源,其充放电特性能够有效平抑新能源波动,…

2026/8/21 3:50:29 阅读更多 →
1. 中国正史

1. 中国正史

古代官方钦定正统纪传体正史:二十四史(24 部)前 4 部 前四史;剩余 20 部 合称后二十史 记事跨度:上古黄帝~明朝灭亡(1644 年)二十四史完整名录(正史)前四史…

2026/8/19 4:29:08 阅读更多 →
Gradle Kotlin DSL 依赖管理全解析:从语法到最佳实践

Gradle Kotlin DSL 依赖管理全解析:从语法到最佳实践

1. 项目概述:为什么我们需要关注 build.gradle.kts 的依赖管理? 如果你是一名 Android 或 Kotlin 多平台项目的开发者,那么 build.gradle.kts 文件就是你项目的“心脏”。它定义了项目的构建逻辑、编译选项,以及最核心的部分——…

2026/8/17 17:35:18 阅读更多 →

最新新闻

从零搭建企业级RAG系统:基于LangChain的检索增强生成实战教程

从零搭建企业级RAG系统:基于LangChain的检索增强生成实战教程

这次我们来看一个面向大模型RAG(检索增强生成)的实战教程项目。这个项目旨在提供一套从零开始、手把手搭建企业级RAG系统的完整流程,目标是帮助开发者避开常见陷阱,快速构建可用的知识库问答应用。如果你正在寻找一个能落地、有代…

2026/8/22 1:41:04 阅读更多 →
宇宙早期莱曼-α绿洲的发现:JWST揭示红移13处高效电离源

宇宙早期莱曼-α绿洲的发现:JWST揭示红移13处高效电离源

1. 项目概述:在宇宙“沙漠”中发现一片“绿洲”最近,一篇发表在《自然》或《天体物理学杂志快报》这类顶刊上的论文标题,成功吸引了我的注意。标题翻译过来大概是:“一片中性星系际沙漠中的莱曼-α绿洲:被证实的谱线和…

2026/8/22 1:41:04 阅读更多 →
技术动态日报 · 2026年8月21日

技术动态日报 · 2026年8月21日

技术动态日报 2026年8月21日 星期五一句话导读:今天最值得圈点的两件事是阿里巴巴新一季财报——阿里云外部商业化收入加速增长 45%、AI 云与算力 EBITA 同比 133%,AI 商业化第一次有了"全栈开花"的财务证据;以及 Vercel Labs 把 …

2026/8/22 1:41:04 阅读更多 →
5分钟还原经典任务栏:RetroBar免费Windows复古任务栏替换工具完整指南

5分钟还原经典任务栏:RetroBar免费Windows复古任务栏替换工具完整指南

5分钟还原经典任务栏:RetroBar免费Windows复古任务栏替换工具完整指南 【免费下载链接】RetroBar Classic Windows 95, 98, Me, 2000, XP, Vista taskbar for modern versions of Windows 项目地址: https://gitcode.com/gh_mirrors/re/RetroBar 你是不是也在…

2026/8/22 1:41:04 阅读更多 →
NAATI 认证翻译件是什么?澳洲移民签证材料翻译要求

NAATI 认证翻译件是什么?澳洲移民签证材料翻译要求

办理澳洲移民签证,很多人资质、材料都准备得妥妥当当,最后偏偏栽在翻译这个小环节上。大家日常用的机器翻译、普通人工翻译,基本都不被澳洲移民局认可,轻则材料退回重做,重则耽误签证审核进度,非常影响申请…

2026/8/22 1:41:04 阅读更多 →
智能客服上线 3 个月复盘:客户满意度从 82% 提升至 94% 的工程实践与数据拆解

智能客服上线 3 个月复盘:客户满意度从 82% 提升至 94% 的工程实践与数据拆解

摘要 智能客服系统的价值不在于“能不能对话”,而在于上线后能否在真实业务场景中持续提升客户满意度。本文复盘一套智能客服系统从上线到稳定运行 3 个月的全过程,拆解满意度从 82% 提升至 94% 背后的关键动作:知识库冷启动策略、意图识别准…

2026/8/22 1:40:03 阅读更多 →

日新闻

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

在电子硬件开发领域,PCB(印制电路板)的沉金工艺是提升产品可靠性和焊接质量的关键环节。对于需要高密度互连、长期稳定运行或高频信号传输的板卡,如“黍姐仿通行证”这类可能涉及身份识别、数据交互的硬件项目,选择正确…

2026/8/22 0:00:11 阅读更多 →
电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

这次我们来看一个针对电气考研电路科目的学习规划项目。它不是软件工具,而是一套聚焦于8月份关键节点的备考策略。对于电气工程考研的同学来说,电路分析是专业课的重中之重,也是拉开分差的关键。进入8月,复习进入强化阶段&#xf…

2026/8/22 0:00:11 阅读更多 →
消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

大家好,我是专注于前端开发与AI工具实践的技术博主。在日常使用 Claude Code 等AI编程助手时,你是否也遇到过这样的困扰:生成的代码功能上没问题,但代码风格、组件设计、交互逻辑总透着一股“AI味”——布局单调、样式简陋、交互生…

2026/8/22 0:00:11 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/21 3:21:33 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 0:02:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/21 6:07:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/21 16:42:28 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/20 21:46:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/21 0:14:22 阅读更多 →