标签: 索引

6 篇文章

MySQL中如何优化多表JOIN?
MySQL多表JOIN的优化是数据库性能调优的核心环节,主要从索引设计、驱动表选择、执行计划分析、SQL写法优化四个维度入手。 一、索引优化:JOIN性能的基石 关联字段必须建索引,这是JOIN优化的首要原则。被驱动表的JOIN字段如果没有索引,MySQL会执行全表扫描,性能急剧下降。例如,orders o JOIN users u ON o.us…
为什么Mysql要用B+树来实现呢,而不是B树?
MySQL 选择 B+ 树而不是 B 树作为索引结构,主要是基于以下几个关键优势: 1. 更低的树高与更高的查询效率 B+ 树的内部节点不存储实际数据,只存放键值和子节点指针,因此每个节点能容纳更多键,从而有效降低树的高度。 树高越低,查询时需要的磁盘 I/O 次数越少,尤其适合磁盘存储系统,其中 I/O 是主要性能瓶颈。 2. 更高效的范围查询 …
MySQL 中的索引数量是否越多越好?为什么?
MySQL 中的索引数量不是越多越好,索引虽然能提升查询性能,但也会带来明显的副作用。需要根据实际业务场景在查询性能和数据维护成本之间进行权衡。 一、索引的优点 加速数据检索​ 索引(特别是 B+Tree 索引)可大幅减少 WHERE、JOIN、ORDER BY、GROUP BY 的扫描数据量。 保证数据唯一性​ 唯一索引可避免数据重复。 优化排序…
MySQL 的索引下推是什么?
MySQL 索引下推(Index Condition Pushdown,ICP) 索引下推是 MySQL 5.6 引入的一项查询优化技术,它允许在存储引擎层执行部分 WHERE 条件的过滤,而不是将所有数据行返回到 Server 层后再进行过滤。 核心原理 在传统的查询处理中: 存储引擎使用索引定位数据 将完整的数据行返回给 Server 层 Se…
MySQL 的索引类型有哪些?
索引是帮助MySQL高效获取数据的数据结构。就像书本的目录一样,可以快速定位到需要查找的内容。以下是MySQL中索引的主要分类和详解。 一、按数据结构划分 这是最核心的分类方式,决定了索引的底层实现和适用场景。 B+Tree索引 描述:这是MySQL中最常用、最主流的索引类型。InnoDB和MyISAM存储引擎都支持B+Tree索引。 特点: 有序…
MySQL 唯一索引和主键索引的区别?
面试考察点 面试官提出这个问题,通常希望考察以下几个层面的理解: 对索引核心概念的本质理解:是否清楚两种索引最基本的功能(加速查询)和附加的约束。 对“约束”这一数据库核心特性的掌握:这是问题的关键。面试官想知道你是否能清晰地阐述主键的 PRIMARY KEY 约束和唯一索引的 UNIQUE 约束在唯一性和非空性上的根本区别。 对 InnoDB 存…