当前位置: 首页 > 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.dtcms.com/a/12620.html

相关文章:

  • 类的初始化列表
  • 如何通俗易懂的解释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的个性化餐饮管理系统
  • Linux云计算 |【第三阶段】PROJECT1-DAY1
  • Java对象列表属性映射工具类
  • SQLite
  • HTML 转 PDF API 接口
  • SaaS化多租户实现的两种方法
  • MongoDB延迟查询
  • R语言统计分析——功效分析(比例、卡方检验)
  • Reactive 编程-Project Reactor
  • postcss 插件实现移动端适配
  • 力扣139-单词拆分(Java详细题解)