发布时间:2026/8/16 8:26:29
了解索引以及原理 索引什么是索引索引是数据库中对表中一列或多列的值进行排序的一种数据结构。索引的作用加快数据检索的速度通过减少查询过程中需要扫描的数据行数。加快表连接和排序索引本身是有序的数据库可以直接利用索引的有序性完成排序避免额外的文件排序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 中频繁使用的列建索引。区分度高选择性好的列适合建索引如主键、唯一字段。联合索引要注意列的顺序把区分度高、查询频繁的列放在最左。避免在频繁更新的列上建过多索引。尽量使用覆盖索引减少回表。

相关新闻

2026/8/16 8:26:29

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

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

2026/8/16 9:16:31

VSCode搭建Rust开发环境:从工具链安装到调试配置全指南

1. 项目概述:为什么是VSCode与Rust的组合? 如果你刚开始接触系统编程,或者厌倦了C的复杂性但又需要高性能和内存安全,Rust大概率已经进入了你的视野。但和很多现代语言不同,Rust的工具链和开发环境配置,对于…

2026/8/16 9:16:31

Agent 产品从演示到上线:限制循环、校验工具参数

Agent 产品从演示到上线:限制循环、校验工具参数 Agent 的一次漂亮演示不能证明它能安全运行。模型可能重复调用工具或生成错误参数,因此要限制循环次数、校验 Schema,并为有副作用的动作设置幂等键和确认。 1. Demo 演示背后的三大工程隐患…

2026/8/16 9:16:31

前程无忧最新校招服务的收费标准是什么样的?

前程无忧校招收费,不是一个固定价前程无忧校招服务更接近“基础套餐 校园项目”的组合模式,而不是单一的一口价。企业如果只是发布校招岗位、获取基础曝光、进行简历收取和初步沟通,通常可以先从标准套餐入手;如果还要做校园宣讲…

2026/8/16 9:11:31

企业协同平台BeeWorks即时通信模块技术解析

1. 项目背景与核心价值 BeeWorks作为新一代企业协同平台,其即时通信模块的设计理念源于对现代办公场景的深度观察。我们团队在2022年企业软件调研中发现,83%的中大型企业同时使用超过5款办公工具,员工每天需要切换应用窗口超过30次。这种碎片…

2026/8/16 0:00:35

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

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

2026/8/16 0:00:36

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/16 0:00:35

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

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

2026/8/16 0:00:36

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/15 9:46:39

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/15 4:56:16

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/15 9:46:30

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…