网站seo应用网络与智能媒体设计 干什么?

张小明 2026/1/8 18:08:01
网站seo应用,网络与智能媒体设计 干什么?,wordpress搬到本地,jsp网站开发详解前言 在学习MySQL过程中#xff0c;阅读到这样一段话#xff1a;在 MySQL 中#xff0c;B 树索引按照存储方式的不同分为聚集索引和非聚集索引。我就在想为什么要分为这两种#xff0c;下面我就详细介绍这两者的联系、优缺点。 一、聚集索引和非聚集索引的本质 聚集索引…前言在学习MySQL过程中阅读到这样一段话在 MySQL 中B 树索引按照存储方式的不同分为聚集索引和非聚集索引。我就在想为什么要分为这两种下面我就详细介绍这两者的联系、优缺点。一、聚集索引和非聚集索引的本质聚集索引核心是“数据即索引索引即数据”nnoDB 中表的存储结构本身就是聚集索引的结构表的所有行数据都会按照聚集索引的键值默认是主键进行排序存储在聚集索引的叶子节点中。可以把它理解成一本按页码主键排序的书书的每一页叶子节点就是完整的内容整行数据。非聚集索引是“单独的索引结构指向数据的指针”非聚集索引有自己独立的索引树结构叶子节点中只存储「索引列的值 聚集索引的键值主键」并不存储整行数据。可以把它理解成这本书的目录目录里只记录章节名索引列和对应的页码主键不记录章节的具体内容。二、聚集索引和非聚集索引的联系二者是强绑定的InnoDB 的设计逻辑里非聚集索引完全依赖聚集索引非聚集索引的叶子节点必须存储聚集索引的键值InnoDB 的非聚集索引叶子节点不会直接存储数据的物理地址而是存储聚集索引的主键值 —— 这是为了保证数据的稳定性如果数据发生页分裂物理地址会变化但主键不会变非聚集索引的回表操作本质是依赖聚集索引当非聚集索引无法覆盖查询查询字段不在非聚集索引中时会先通过非聚集索引找到主键值再用主键值去聚集索引中查询完整数据这个过程就是「回表」二者的索引树结构逻辑一致不管是聚集还是非聚集索引都采用 B 树的结构非叶子节点存储索引键值用于导航叶子节点存储实际的内容聚集索引存数据非聚集索引存索引列 主键三、优缺点对比对比维度聚集索引非聚集索引叶子节点存储存储整行数据存储索引列的值聚集索引的主键值索引体积体积大等于表的实际数据体积体积小仅包含索引列和主键远小于表体积访问效率1. 主键查询/范围查询效率极高 2.非主键查询效率极低需要全表扫描1. 非主键查询匹配索引列效率极高 2.覆盖索引场景下效率优于聚集索引 3.非覆盖场景需回表效率略降排序特性天然按主键排序无需额外排序可按索引列排序避免ORDER BY触发的文件排序创建限制1. 一张表仅能创建1个聚集索引 2.默认以主键为聚集索引无主键则选唯一非空索引否则生成隐藏rowid1. 一张表可创建多个非聚集索引 2.支持基于任意字段/联合字段创建更新代价更新主键聚集索引键会导致整行数据移动代价极高更新索引列仅修改索引树节点代价低若索引列是主键会联动修改所有非聚集索引四、实战案例我们用一个电商的订单表order_info来举例表结构如下CREATETABLEorder_info(order_idBIGINTNOTNULLCOMMENT订单ID主键聚集索引,user_idBIGINTNOTNULLCOMMENT用户ID,order_timeDATETIMENOTNULLCOMMENT下单时间,order_amountDECIMAL(10,2)NOTNULLCOMMENT订单金额,order_statusTINYINTNOTNULLCOMMENT订单状态,PRIMARYKEY(order_id),-- 聚集索引KEYidx_user_time(user_id,order_time)-- 非聚集联合索引)ENGINEInnoDBDEFAULTCHARSETutf8mb4;场景 1适合用聚集索引的场景如果运营需要查询「订单 ID 为 100001 的订单的所有信息」SQL 如下SELECT*FROMorder_infoWHEREorder_id100001;此时用聚集索引order_id是最优选择直接通过主键定位到叶子节点的整行数据不需要任何额外操作效率最高场景 2适合用非聚集索引覆盖索引的场景如果运营需要查询「用户 ID 为 1001 的所有订单的下单时间和订单金额」SQL 如下SELECTorder_time,order_amountFROMorder_infoWHEREuser_id1001;此时我们创建的非聚集联合索引idx_user_time (user_id, order_time)加上 InnoDB 默认存储的主键order_id但我们的查询字段是order_time和order_amount—— 这里可以优化索引改成idx_user_time_amount (user_id, order_time, order_amount)优化后这个索引就覆盖了查询的所有字段MySQL 直接从非聚集索引中返回数据不需要回表效率远高于用聚集索引查询场景 3适合用非聚集索引需要回表的场景如果运营需要查询「用户 ID 为 1001 的所有订单的完整信息」SQL 如下SELECT*FROMorder_infoWHEREuser_id1001;此时非聚集索引idx_user_time只能提供user_id、order_time和order_id无法覆盖所有字段需要回表1.先通过idx_user_time找到所有user_id1001的行拿到对应的order_id2.再用order_id去聚集索引中查询整行数据但这个效率依然远高于用聚集索引全表扫描聚集索引只能按 order_id 排序无法快速找到 user_id1001 的行五、实战建议聚集索引的选择尽量用自增主键自增主键的插入是顺序的不会导致聚集索引的页分裂插入效率更高如果用 UUID 作为主键插入时会随机定位位置导致大量页分裂性能下降非聚集索引的设计优先考虑覆盖索引对于高频查询尽量创建包含查询所需所有字段的联合索引避免回表不要滥用非聚集索引非聚集索引会占用额外的磁盘空间同时会降低插入 / 更新 / 删除的效率因为需要维护索引树只给高频查询的字段创建索引
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

国外做调查的网站北京做电子系统网站的公司

震惊!这家酶制剂批发厂家竟让同行都慌了在竞争日趋白热化的生物科技与工业应用领域,酶制剂作为关键的生物催化剂,其供应链的稳定与品质的卓越直接关系到下游产业的效率与成本。近期,一家位于行业前沿的酶制剂批发厂家——上海华上…

张小明 2026/1/3 10:58:21 网站建设

博客网站开发利用数据库重庆装修网

在生命科学领域,抗体作为研究和治疗的核心工具,其质量与性能直接影响实验结果的准确性和可靠性。随着生物技术的不断进步,越来越多的高质量生物类似药产品进入市场,为科研工作者提供了更加经济、高效的解决方案。其中,…

张小明 2025/12/26 7:22:47 网站建设

鲅鱼圈规划建设局网站企业网站建设中企动力

SENAITE LIMS终极部署指南:实验室信息管理系统的完整安装教程 【免费下载链接】senaite.lims SENAITE Meta Package 项目地址: https://gitcode.com/gh_mirrors/se/senaite.lims SENAITE LIMS作为一款功能强大的开源实验室信息管理系统,专门为现代…

张小明 2026/1/7 1:21:21 网站建设

个人备案放企业网站官网网站源码

2025年,智能汽车竞争从单一功能的技术突破,转向以生态融合与持续进化能力为核心的体系化较量。围绕这一趋势,东软相继推出东软A舱行泊产品平台、东软OneCoreGo全球车载智能出行解决方案6.0、东软NeuMind赋能体、东软NAGIC座舱软件平台等系列创…

张小明 2026/1/7 13:09:00 网站建设

网站开发 教程给别人做网站做什么科目

第一章:揭秘Docker MCP网关服务注册核心原理在现代微服务架构中,Docker容器化技术与MCP(Microservice Control Plane)网关的协同工作成为服务发现与流量调度的关键。MCP网关通过动态监听容器生命周期事件,实现服务实例…

张小明 2026/1/6 18:59:36 网站建设