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

mysql聚簇索引

1.聚簇索引是物理索引,数据在表里是按顺序存储的,物理上是连续的,一般选主键id作为聚簇索引,且一张表里只能有一个聚簇索引。
2.只有InnoDB支持聚簇索引。
3.非聚簇索引是逻辑索引,将数据的某个字段抽取出来组成独立的B-Tree,原数据的存储顺序可能不是物理连续的。
4.对于非聚簇索引,索引字段越紧凑,每页可以存储的索引越多,单次IO可以读到的信息越多,查询效率越高。
5.一般地InnoDB把 primary key作为聚簇索引,没有指定 primary key,则MySQL将唯一索引作为聚簇索引,如果也没有唯一索引,MySQL将创建一个隐藏索引GEN_CLUST_INDEX。
6.聚集索引就是以主键创建的索引,非聚集索引就是以非主键创建的索引,聚集索引的叶子节点存储的是表中的数据,非聚集索引的叶子节点存储的是主键和(辅助)索引列,拿到叶子节点上的存储的主键再去查询想要查询的数据,这个过程叫做回表。


在数据库术语中,特别是在SQL Server和一些其他数据库系统中,"clustered 索引"指的是一种特殊类型的索引,其中索引的物理顺序决定了表中数据行的物理存储顺序。在一个表中,只能有一个clustered 索引,因为你不能以两种不同的方式物理存储同一组数据行。

对于MySQL数据库,InnoDB存储引擎使用的是B+树索引模型,其中也有类似的概念,称为"主键索引"或"聚簇索引"。在InnoDB中,表数据实际上存储在聚簇索引的叶子节点上。如果表定义了PRIMARY KEY,那么这个主键索引就是聚簇索引;如果没有显式定义PRIMARY KEY,InnoDB会选择一个唯一索引作为聚簇索引;如果没有唯一索引,InnoDB会生成一个隐藏的row-id来作为聚簇索引。

因此,当你更新一个聚簇索引的列(无论是主键还是InnoDB自动选择的聚簇索引列)时,可能会导致InnoDB需要移动数据行到新的位置以保持索引的有序性,这确实是一个资源密集型的操作。这就是为什么通常建议避免频繁更新聚簇索引列的值,因为这会影响性能。

总结来说,clustered 索引数据列在MySQL的上下文中通常指的是InnoDB表的聚簇索引(主键索引)的列,而这些列的值的更新会影响到数据行的物理存储位置。

http://www.lryc.cn/news/364102.html

相关文章:

  • 【云原生】Kubernetes----PersistentVolume(PV)与PersistentVolumeClaim(PVC)详解
  • Adobe Premiere 专业视频编辑软件资源下载安装!pr 2024最新版软件分享
  • c++------类和对象(下)包含了this指针、构造函数、析构函数、拷贝构造等
  • git版本控制工具常用命令
  • 展示广告多模态召回模型:混合模态专家模型
  • 好的一些网安资源
  • Linux chmod 命令
  • SDL教程(二)——Qt+SDL播放器
  • Java面试题:解决Redis缓存击穿问题
  • Redis的哨兵模式
  • Hadoop伪分布式安装教程
  • Day43 代码随想录打卡|二叉树篇---左叶子之和
  • 微信小程序动画
  • js, ellipsis属性, 超出宽度自动省略... , 并且显示2行
  • ucharts自定义添加tooltip悬浮框显示项内容且换行
  • Mongo 地理位置查询:海量密集点转换成聚合信息
  • bpmn+vue 中文文档
  • React Router v5 和 v6 中,路由对象声明方式有什么区别?
  • 【全开源】知识库文档系统(ThinkPHP+FastAdmin)
  • Python赋能自然语言处理,解锁通往AI的钥匙
  • Ktor库的高级用法:代理服务器与JSON处理
  • VS2017配置OpenCV4.5.1
  • phpstudy配置的站点不能访问了
  • Java Web学习笔记2——Web开发介绍
  • 从零开始实现自己的串口调试助手(3) - 显示底部收发,优化串口打开/关闭
  • 更改Web网站设计——css和css框架
  • 持续监控和优化的简单介绍
  • 针对硅基氮化镓高电子迁移率晶体管(GaN-HEMT)的准物理等效电路模型,包含基板中射频漏电流的温度依赖性
  • 基于websocket与node搭建简易聊天室
  • DevOps全面综述:从概念到实践