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

【随手记】聚簇索引、二级索引和联合索引

  1. 聚簇索引(Clustered Index)

    • 特点:聚簇索引是表中数据行的物理排序方式,每张表只能有一个聚簇索引。通常,聚簇索引与主键相关联,但如果没有显式定义主键,则InnoDB存储引擎会选择一个唯一非空列作为聚簇索引。
    • 联系:聚簇索引实际上是表的主要排序顺序,因为它决定了数据行在磁盘上的物理排列。聚簇索引的叶子节点包含了实际数据行,而不仅仅是索引键值。因此,当您在查询中使用聚簇索引时,可以更快地检索数据。
  2. 二级索引(Secondary Index)

    • 特点:二级索引是表中除了聚簇索引之外的任何其他索引。一个表可以有多个二级索引,它们不会改变数据行的物理排序,而是提供了额外的索引路径以加速查询。
    • 联系:二级索引通过索引键值引用数据行,而不是直接包含数据行。当您查询时,数据库会首先使用二级索引找到匹配的行的主键,然后使用主键查找实际的数据行。因此,二级索引可以加速特定的查询,但需要额外的查找步骤。
  3. 联合索引(Composite Index)

    • 特点:联合索引是一个包含多个列的索引,它们一起形成索引键值。联合索引可以用于加速多列的查询,而不仅限于单列。
    • 联系:联合索引可以是聚簇索引或二级索引的一种。如果联合索引是表的主键,那它就是聚簇索引。如果联合索引不是主键,那它就是二级索引。联合索引中的列按照索引的定义顺序组成键值,可以用于加速多列的查询条件。

要总结:

  • 聚簇索引是表的主要物理排序方式,通常与主键相关联。
  • 二级索引是表的其他索引,用于加速查询,但不改变数据行的物理排序。
  • 联合索引是一种包含多个列的索引,可以是聚簇索引或二级索引,用于加速多列的查询。

这些索引类型在数据库查询优化和性能方面发挥着重要的作用,根据查询需求和数据模型的不同,选择合适的索引类型非常重要。

相关文章:

  • Visual Studio Code 常用快捷键大全
  • 100量子比特启动实用化算力标准!玻色量子重磅发布相干光量子计算机
  • 【漏洞复现】74cms任意文件读取
  • HCIE-kubernetes(k8s)-Authentication身份验证
  • SpringCloud 微服务全栈体系(十)
  • leetcode_208 实现Trie(前缀树)
  • zookeeper节点类型
  • 听GPT 讲Rust源代码--library/std(13)
  • 集线器、交换机、网桥、路由器、网关
  • 如何使用Python和Matplotlib创建双Y轴动态风格折线图 | 数据可视化教程
  • C++进阶语法——STL 标准模板库(下)(Standard Template Library)【学习笔记(七)】
  • 【SpringCloud Alibaba -- Nacos】Linux 搭建 Nacos 集群
  • Vue3后台管理系统框架之时间格式化封装
  • Spring整合JUnit
  • 服务器搭建:从零开始创建自己的Spring Boot应用【含登录、注册功能】
  • dva中组件的懒加载
  • idea + plantuml 画流程图
  • Java精华积累:初学者都应该搞懂的问题
  • nfs客户端进程变D,延伸linux的lock
  • supervisor 永不挂掉的进程 安装以及使用
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • 排序(1):冒泡排序
  • 盘点那些不知名却常用的 Git 操作
  • 微信公众号开发小记——5.python微信红包
  • Java性能优化之JVM GC(垃圾回收机制)
  • ​520就是要宠粉,你的心头书我买单
  • %check_box% in rails :coditions={:has_many , :through}
  • (1) caustics\
  • (4)(4.6) Triducer
  • (8)STL算法之替换
  • (a /b)*c的值
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (阿里云万网)-域名注册购买实名流程
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (生成器)yield与(迭代器)generator
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转) RFS+AutoItLibrary测试web对话框
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .Net Core 中间件验签
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NET 药厂业务系统 CPU爆高分析
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .net(C#)中String.Format如何使用
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .NET面试题(二)
  • .NET实现之(自动更新)
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48