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

MySQL问题:主要索引类型(聚簇、辅助、覆盖、前缀)

(1)啥是主键索引?

主键索引是一种特殊的唯一索引,用于唯一标识表中的每一行记录。每个表只能有一个主键索引。主键索引也叫聚簇索引。

特性:

唯一性索引,要求主键值必须唯一,不允许有NULL值

数据行实际存储在主键索引的叶子节点中

自动创建,当定义Primary Key,数据库自动创建主键索引

注意:实践时要考虑主键自增,这样使得顺序写入性能好,减少页分裂

  1. 啥是辅助索引

辅助索引是一种非主键索引,它提供主键之外的快速查询路径,但需要结合主键索引才能定位到完整数据行。

特性:

数据结构与主键索引一样,采用B+Tree结构,但叶子节点存储的内容是主键值

查询流程(回表)

查找辅助索引树,回表查询主键索引

如何解决回表:

使用覆盖索引,如果一个索引(通常是辅助索引)包含了查询中需要的所有字段,那么数据库可以直接通过该索引返回结果,而无需回表,这种索引称为覆盖索引。

创建联合索引,将多个字段作为一个联合索引,索引中存在这些数据,查询就不会再次检索主键索引,从而避免回表。

(3)啥是前缀索引?

前缀索引是一种数据库索引技术,它只对列值的前一部分字符建立索引。

特点:减少索引占用的存储空间,同时在一定程度上保持索引的查询效率,较小的索引可以更快地加载到内存中

适用场景:文本字段较长,字段长度有区分度,存储空间有限

注意事项:

无法用于Order By和Group By操作,因为它们需要完整的列值

无法作为覆盖索引,原因无法提供完整列值

在InnoDB中,前缀长度最多为767字节

http://www.xdnf.cn/news/673723.html

相关文章:

  • WPF中的图标闪烁功能
  • ubuntu 制作 ssl 证书
  • WEB安全威胁与SSL
  • 互联网大厂Java面试:从Spring到微服务的挑战
  • Linux下使用socat将TCP服务转为虚拟串口设备
  • Docker 在 CI/CD 中的应用:自动化构建、测试与部署流程设计
  • 超声体模的保修制度和维护保养
  • uniapp vue3 鸿蒙支持的 HTML5+接口
  • 服务器数据迁移
  • Windows逆向工程提升之IMAGE_TLS_DIRECTORY
  • 嵌入式学习 D29:系统编程--线程
  • AbMole| MGCD0103(M1790,Mocetinostat)
  • 深入解析Google多线程环境下的空间配置器——TCMalloc
  • 哈希算法及其在文件唯一性判定中的应用
  • [Vue]浅浅了解vue3响应式的基本原理
  • 【c++】exe找不到dll里的符号:error LNK2019: unresolved external symbol
  • (LeetCode 每日一题)2894. 分类求和并作差(数组、数学)
  • 优秘AI短视频数字人6月功能更新预告:新增多个AIGC热门功能,智能体和知识库再升级
  • 11.13 LangGraph记忆机制解析:构建生产级AI Agent的关键技术
  • MyBatis-Plus一站式增强组件MyBatis-Plus-kit(更新2.0版本):零Controller也能生成API?
  • 数据链路层
  • 动态规划(8):路径问题
  • cos和dmz学习
  • docker-compose搭建emqx 服务
  • 大学大模型教学:基于NC数据的全球气象可视化解决方案
  • 计算机组成原理:IEEE 754标准
  • 武汉火影数字VR大空间制作
  • Spring Cloud 详解:2025 最新技术与最佳实践
  • 第二章 1.4 数据采集安全风险防范之数据分类分级
  • vue + ant-design + xlsx 实现Excel自定义模板导入功能