专栏名称: 鸭哥聊Java
回复关键字:666 ,领取免费简历模板,Java面试题,Java编程视频等。本号内容涵盖Java源码,JVM源码,Dubbo源码,Spring源码,Spring Cloud微服务架构,分布式高并发架构技术,MySQL性能调优等。
今天看啥  ›  专栏  ›  鸭哥聊Java

面试官:说一下索引的分类有哪些?

鸭哥聊Java  · 公众号  · 数据库  · 2024-12-11 11:00
    

主要观点总结

文章介绍了MySQL中的索引分类,包括数据结构、物理存储、字段特性和字段个数等方面的分类,并详细解释了各类索引的特点和用法。

关键观点总结

关键观点1: MySQL索引的数据结构分类

MySQL支持三种主要索引结构:B+Tree索引、Hash索引和Full-text索引。B+Tree索引适用于范围查询和排序操作,是InnoDB默认的索引结构;Hash索引适合等值查询,常用于Memory引擎;Full-text索引用于全文检索。

关键观点2: MySQL索引的物理存储分类

从物理存储角度,MySQL索引分为聚簇索引和二级索引。聚簇索引存储实际数据记录,InnoDB表默认使用主键作为聚簇索引。二级索引保存的是主键值,查询时需要通过二级索引找到主键,再去主键索引中定位实际数据。

关键观点3: MySQL索引的字段特性分类

从字段特性来看,索引可分为主键索引、唯一索引、普通索引和前缀索引。主键索引强制唯一,且不能为空;唯一索引要求值唯一,但允许空值;普通索引无特殊约束,用于加速查询;前缀索引只索引字段的前几个字符,节省存储空间。

关键观点4: MySQL索引的字段个数分类

从字段个数来看,索引分为单列索引和联合索引。联合索引遵循最左匹配原则:查询时必须从左至右依次匹配字段,遇到范围查询时停止匹配。


文章预览

今天我们来聊聊 MySQL 中的索引分类,这可是数据库优化的重中之重。作为一个资深 Java 开发工程师,我经常碰到各种关于索引的疑问。干货满满,技术点不少,记得收藏。 在 MySQL 中,索引主要可以从四个角度进行分类:数据结构、物理存储、字段特性和字段个数。这些分类不仅仅是面试时的考点,更是日常开发中优化查询性能的必修课。 首先,从 数据结构 的角度来看,MySQL 支持三种主要索引结构:B+Tree 索引、Hash 索引和 Full-Text 索引。 InnoDB 默认支持 B+Tree 索引,这是最常用的结构。B+Tree 是一个高度平衡的树结构,其叶子节点保存着完整的数据,查询效率高,适用于范围查询和排序操作。 -- 创建一个使用 B+Tree 索引的表 CREATE   TABLE   users  (    id   INT  PRIMARY  KEY ,    name   VARCHAR ( 100 ),   email  VARCHAR ( 100 ) )  ENGINE = InnoDB ; Hash 索引则适合 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览