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

76-mysql的聚集索引和非聚集索引区别

MySQL中的聚集索引和非聚集索引的主要区别在于它们的存储方式和使用方式。

聚集索引(Clustered Index):

  • 聚集索引的叶子页包含了行的全部数据。

  • 每个表只能有一个聚集索引,因为一个表中的数据只能按照一种方式存储。

  • 当你查询的列在聚集索引中,那么MySQL不需要进行额外的查找就能直接获取数据

非聚集索引(Non-Clustered Index):

  • 非聚集索引的叶子页包含了行的主键值。

  • 非聚集索引的叶子页同时包含了一个书签(bookmark),该书签指向聚集索引中的对应行

  • 当你查询的列不在非聚集索引中时,MySQL需要通过非聚集索引找到聚集索引中的数据。

实例代码:

CREATE TABLE People (PersonID int NOT NULL,FirstName varchar(30) NOT NULL,LastName varchar(30) NOT NULL,BirthDate datetime NOT NULL,PRIMARY KEY (PersonID),INDEX (LastName, FirstName, BirthDate)
);

在这个例子中,PRIMARY KEY (PersonID)创建了聚集索引,而INDEX (LastName, FirstName, BirthDate)创建了非聚集索引。如果查询中使用到PersonID(聚集索引),那么可以直接从索引中获取数据。而如果查询中使用到LastNameFirstNameBirthDate(非聚集索引列),则需要通过非聚集索引先找到聚集索引,再获取数据行。


http://www.mrgr.cn/news/24536.html

相关文章:

  • 【专题】2024年8月数字化、数智化行业报告合集汇总PDF分享(附原数据表)
  • 卷积神经网络(一)
  • MongoDB根据字段内容长度查询语句
  • Win10 9月更新补丁KB5043064发布:21H2/22H2用户不容错过!
  • 鸿蒙应用开发者基础认证题库
  • vue3页面组件中怎么获取上一个页面的路由地址
  • 时序预测 | MATLAB实现BKA-XGBoost(黑翅鸢优化算法优化极限梯度提升树)时间序列预测
  • OJ在线评测系统 前端开发设计优化通用菜单组件 初始化JS全局项目入口
  • 安泰功率放大器在压电马达中的应用实例
  • c语言是干嘛的
  • C#Join()和GroupJoin的区别
  • 搭子小程序开发搭建,数字化下的“找搭子”文化
  • 高防IP是如何防御攻击
  • Nignx 增加权限(windows)
  • Linux:体系结构和操作系统管理
  • 【学习笔记】SSL证书密码套件之加密
  • Nuxt Kit 的使用指南:模块创建与管理
  • 如何模拟一个小程序项目打包的流程
  • numpy报ValueError: Expected 96 from C header, got 88 from PyObject
  • Nginx文件服务器搭建