聚簇索引及其优缺点

简介: java事务控制

聚簇索引并不是单独的索引类型,而是一种数据存储方式。
B+树索引分为聚簇索引和非聚簇索引,主键索引就是聚簇索引的一种,非聚簇索引有复合索引、前缀索引、唯一索引。
在innodb存储引擎中,表数据本身就是按B+树组织的一个索引结构,聚簇索引就是按照每张表的主键构造一颗B+树,同时叶子节点中存放的就是整张表的行记录数据,也将聚簇索引的叶子节点成为数据页。
Innodb通过主键聚集数据,如果没有定义主键,innodb会选择非空的唯一索引代替。如果没有这样的索引,innodb会隐式的定义一个主键来作为聚簇索引。
非聚簇索引又称为辅助索引,InnoDB访问数据需要两次查找,辅助索引叶子节点存储的不再是行的物理位置,而是主键值。通过辅助索引首先找到的是主键值,再通过主键值找到数据行的数据页,找到数据页对应数据行。
Innodb辅助索引的叶子节点并不包含行记录的全部数据,叶子节点除了包含键值外,还包含了相应行数据的聚簇索引键。一张表可有多个二级索引。
优点:
数据访问更快,因为聚簇索引将索引和数据保存在同一个B+树中,因此从聚簇索引中获取数据比非聚簇索引更快。聚簇索引对于主键的排序查找和范围查找速度非常快。
缺点:
插入速度严重依赖于插入顺序,按照主键的顺序插入是最快的方式,否则将会出现页分裂,严重影响性能。因此,对于InnoDB表,我们一般都会定义一个自增的ID列为主键。更新主键的代价很高,因为将会导致被更新的行移动。因此,对于InnoDB表,我们一般定义主键为不可更新。二级索引访问要两次索引查找,第一次找到主键值,第二次根据主键值找到行数据。

目录
相关文章
|
网络协议 网络安全 网络虚拟化
IPv6地址详解
IPv4地址资源的紧张限制了Internet的进一步发展。NAT、CIDR、VLSM等技术的使用仅仅暂时缓解IPv4地址紧张,但不是根本解决办法。
938 0
|
Java
JSP 教程 之 JSP 表单处理 7
该教程介绍了如何在JSP中处理表单,特别是Checkbox数据。示例展示了一个HTML表单,包含三个已选中的复选框(Google、百度、淘宝),用户提交表单后,数据将以POST方式发送到main.jsp。
237 1
|
传感器 物联网 定位技术
物联网卡:物联网卡不能使用,几招帮您解决!
物联网卡(IoT SIM卡)是为物联网设备(如智能家居设备、智能城市传感器、车载终端等)提供网络连接的重要组件。然而,在使用过程中,用户可能会遇到物联网卡无法使用的情况。以下是一些物联网卡不能使用的常见原因及其解决方法:
|
存储 关系型数据库 索引
什么是聚簇索引及其优缺点?
聚簇索引是InnoDB存储引擎中的一种数据存储方式,通过主键构建B+树,叶子节点存储整行数据。主键索引即为聚簇索引,若无主键则选择非空唯一索引或隐式创建主键。非聚簇索引(辅助索引)的叶子节点存储主键值,访问数据需两次查找。聚簇索引优势在于数据访问速度快,尤其适合主键的排序和范围查询;但插入和更新操作成本较高,建议使用自增ID作为主键。
318 6
|
小程序 JavaScript Java
基于微信小程序的流浪动物救助微信小程序的设计与实现(源码+lw+部署文档+讲解等)
基于微信小程序的流浪动物救助微信小程序的设计与实现(源码+lw+部署文档+讲解等)
228 1
|
缓存 资源调度 前端开发
Yarn的安装和使用
【5月更文挑战第5天】**Yarn**是Facebook于2016年推出的快速、可靠的JavaScript包管理器,旨在解决npm的安装速度慢和依赖一致性问题。它通过确定性安装、并行下载和本地缓存提升开发体验。本文介绍了Yarn的基本概念、核心特性、安装步骤、常见问题及其解决方案,并提供了代码示例。Yarn支持工作空间管理、选择性版本安装、自动化脚本等进阶功能,与VSCode、Git和CI工具集成良好,且持续创新,如Yarn 2的PnP模式。掌握Yarn能有效提升前端开发效率和项目安全性。
1091 2
|
域名解析 网络协议 定位技术
DNS自动择优:提升网络体验的新途径
DNS自动择优是智能选择最佳DNS解析路径的技术,基于网络状况、服务器负载等因素优化响应速度和稳定性。虽不增加带宽,但能减少延迟,提高访问速度,尤其在处理远距或高负载服务器时效果明显。通过选择支持该服务的DNS提供商并调整设备设置即可启用。在复杂网络环境中,DNS自动择优可提升用户体验。
|
网络协议
TCP 和 UDP 可以使用同一个端口吗?
【2月更文挑战第9天】
588 0
TCP 和 UDP 可以使用同一个端口吗?
|
Android开发
App Inventor 2 Activity启动器技巧:如何查看并启动其他App
Activity启动器(ActivityStarter)如何查看并启动其他App,可以通过解压源码查看,或使用“包名查看器”App查看,不同品牌手机可能略有不同。
495 0
|
移动开发 前端开发 HTML5
分享166个HTML医疗保健模板,总有一款适合您
分享166个HTML医疗保健模板,总有一款适合您
218 0