当前位置: 首页 > 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(非聚集索引列),则需要通过非聚集索引先找到聚集索引,再获取数据行。

相关文章:

  • 类的初始化列表
  • 如何通俗易懂的解释TON的智能合约
  • 什么是APT攻击,有哪些防御策略
  • Android Framework(五)WMS-窗口显示流程——窗口布局与绘制显示
  • 数据流通有风险,跨域管控来护航
  • Python 数学建模——Fitter 拟合数据样本的分布
  • tensor连接和拆分
  • 零基础如何成为一名黑客?小白必学的12个基本步骤,带你从零基础入门到进阶(超详细)
  • Git的学习笔记
  • PP_HTONL(x)
  • Cenos7镜像+Docker问题
  • FAT32文件系统详细分析 (格式化SD nandSD卡)
  • MySQL用户管理(DCL)
  • 极狐GitLab CI/CD 功能合集(超详细教程)
  • 面试干货|2024软件测试面试题汇总
  • spring security OAuth2 搭建资源服务器以及授权服务器/jdbc/jwt两种方案
  • 飞速(FS)与西门子联合打造交换机自动化灌装测试生产线
  • Java多态
  • 【zabbix监控软件(配置及常用键值)】
  • 基于python+django+vue的个性化餐饮管理系统
  • 奥迪车加油时频繁“跳枪”维修两年未解决,4S店拒退换:可延长质保
  • 北京13日冰雹过后,已受理各险种报案近3万件
  • 在稳市场稳预期下,投资者教育给了散户更多底气
  • 上海杨浦:鼓励龙头企业与高校共建创新联合体,最高支持200万元
  • 习近平出席中拉论坛第四届部长级会议开幕式并发表主旨讲话
  • 商务部召开外贸企业圆桌会:全力为外贸企业纾困解难,提供更多支持