Mysql主键优化之页分裂与页合并

主键设计原则

  • 满足业务需求的情况下,尽量降低主键的长度。因为如果主键太长,在多个二级索引中,主键索引值所占用的空间就会过大。

  • 插入数据时,尽量选择顺序插入,选择使用AUTO_INCREMENT自增主键。因为乱序插入会导致页分裂。

  • 尽量不要使用UUID做主键或者其他自然主键,如身份证号。因为乱序插入会导致页分裂。

  • 业务操作时,避免对主键的修改。

如下图:每个Page页里面存放的是Row行,而页分裂和页合并指的就是行插入后导致页的变化

页分裂:

页可以为空,也可以填充一半,可以填充100%。每个页包含最少两行数据(一行数据以链表形式存在),根据主键排序。

具体分裂后修改情况如下图:

页合并:

当删除一行记录时,实际上记录并没有被物理删除,只是记录被标记(flaged)为删除并且它的空间变得允许被其他生命使用。当页中删除的记录达到MERGE_THRESHOLD(默认为页的50%),Innodb会开始寻找最靠近的页(前或后)看看是否可以将两个页合并以优化空间使用。

MERGE_THRESHOLD:合并页的阈值,可以自己设置,在创建表或者创建索引时指定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/800049.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[C++][异常]详解

目录 1.C语言传统的处理错误的方式2.C异常概念3.异常的抛出和捕获4.异常的重新抛出5.异常安全6.异常规范7.自定义异常体系8.C标准库的异常体系9.异常的优缺点1.C异常的优点2.C异常的缺点3.总结 1.C语言传统的处理错误的方式 传统的错误处理机制 终止程序,如assert …

Pillow教程:对比两张图片是否相同

---------------Pillow教程集合--------------- Python项目18:使用Pillow模块,随机生成4位数的图片验证码 Python教程93:初识Pillow模块(创建Image对象查看属性图片的保存与缩放) Pillow教程02:图片的裁…

Go语言中如何实现多态

完整课程请点击以下链接 Go 语言项目开发实战_Go_实战_项目开发_孔令飞_Commit 规范_最佳实践_企业应用代码-极客时间 在Go语言中,虽然没有像其他面向对象语言(如Java或C)中那样的显式的类继承和多态机制,但通过接口和方法的组合…

Linux gcc day5粘滞位

粘滞位 背景:一定时在一个公共目录(root创建)下。进行临时文件的操作 Linux系统中有很多人,我们需要在一个公共目录下,进行临时文件的操作(增删查改) 创建一个根目录下的dir(mytmp…

代码随想录算法训练营day33

题目:1005.K次取反后最大化的数组和、134. 加油站、135. 分发糖果 参考链接:代码随想录 1005.K次取反后最大化的数组和 思路:本题还是直觉,想使得整体的数组和最大,需要每一次取反都尽可能使的全局最优。先将数组排…

算法练习----力扣每日一题------5

原题链接 894. 所有可能的真二叉树 - 力扣&#xff08;LeetCode&#xff09; 题目解析 给一个整数&#xff0c;返回所有可能的真二叉树vector<TreeNode*>类型&#xff0c;每棵树的val都必须为0 真二叉树&#xff1a;每个节点都有零个或两个元素 解题思路 要求一个含有n个…

网路维护基础知识

1、路由器 路由器&#xff1a;路由器就是将一个可以接入互联网的网路地址分成若干个网路地址可供终端设备连接的网路设备&#xff0c;设备既可以通过有线连接也可以通过无线连接进入互联网 2、交换机 交换机&#xff1a;个人感觉交换机只是为那些有线网路设计的&#xff0c;…

js-Vue创建公共的JavaScript工具类

Vue前端项目中创建了一个公共的JavaScript工具类&#xff0c;并定义了一些公共方法后&#xff0c;可以在需要的组件中引用并调用这些公共方法。 1.创建一个名为 utils.js 的JavaScript文件&#xff0c;定义一个公共的工具类&#xff0c;包含一个用于计算平方的方法&#xff1a;…

与汇智知了堂共舞,HW行动开启你的网络安全新篇章!

**网安圈内一年一度的HW行动来啦&#xff01; ** 招募对象 不限&#xff0c;有HW项目经验 或持有NISP二级、CISP证书优先 HW时间 以官方正式通知为准 工作地点&#xff1a;全国 薪资待遇 带薪HW &#xff08;根据考核成绩500-4000元/天不等&#xff09; 招募流程 1.填写报名…

2024-4-7

今日流水账&#xff1a; 早上突然收到了腾讯科恩实验室的 HR 面试邮件&#xff0c;挺开心的&#xff0c;然后准备了一上午&#xff0c;下午面试下面面试不到15分钟就草草结束了&#xff0c;感觉应该是寄了 记录一下今日自己的心得吧&#xff1a; 由于是第一次 HR 面试&#…

供应链领域主题:生产制造关键术语和系统

BOM&#xff08;Bill of Material&#xff09;物料清单 BOM&#xff08;Bill of Material&#xff09;物料清单&#xff0c;是计算机可以识别的产品结构数据文件&#xff0c;也是ERP的主导文件。BOM使系统识别产品结构&#xff0c;也是联系与沟通企业各项业务的纽带。ERP系统中…

【QT教程】QT6 WebSocket编程

QT6 WebSocket编程 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看 免…

国内通稿在海外新闻媒体如何宣发-大舍传媒

引言 在全球化的时代背景下&#xff0c;海外通稿成为了新闻媒体间交流和宣发的重要方式之一。本文将探讨海外通稿在新闻媒体中的宣发方式&#xff0c;并分析大舍传媒在这方面的成功经验。 来百度APP畅享高清图片 海外通稿的重要性 海外通稿是指由海外记者或通讯社撰写的报道…

JavaScript - 你知道数组去重都有哪些实现方案吗

难度级别:初级及以上 提问概率:70% 数组去重是一道非常经典而又高频的面试题,这里我们提出6种解决方案: 目录 1 第一种 2 第二种 3 第三种 4 第四种

携程API接口与旅游大数据的结合

携程API接口与旅游大数据的结合 随着旅游行业的蓬勃发展&#xff0c;大数据已经成为旅游企业制定战略、优化服务、提升用户体验的重要工具。而携程作为国内领先的在线旅游平台&#xff0c;其API接口为旅游大数据的获取和应用提供了有力的支持。本文将探讨携程API接口与旅游大数…

C++之eigen库学习

Eigen是一个高性能的C模板库&#xff0c;专门用于线性代数、矩阵和向量运算。该库提供了一系列的类和函数&#xff0c;使开发者能够轻松进行各种数学计算&#xff0c;如矩阵乘法、矩阵分解&#xff08;如QR分解、奇异值分解等&#xff09;、特征值计算、求解线性方程组等。 以…

Codigger Desktop:用户体验与获得收益双赢的革新之作(一)

上周&#xff0c;我们介绍了Codigger Desktop凭借其强大的功能、稳定的性能以及人性化的设计&#xff0c;成为了广大开发者的得力助手。Codigger Desktop除了是开发者的利器外&#xff0c;它以其出色的用户体验和创新的收益模式&#xff0c;为用户提供了一个全新的选择。Codigg…

基于LNMP环境上线QQ农场

目录 一.介绍 二. 环境准备 三.安装Mysql数据库 四.安装PHP 五.安装Nginx 六.测试Nginx服务于PHP服务是否能关联 七.项目上线 QQ农场源码&#xff1a;做本项目默认操作者有一定的基础知识与理解能力 链接&#xff1a;https://pan.baidu.com/s/1HF8GZ-yvNh7RbJ61nXOW-g?…

【Django开发】0到1美多商城项目md教程第6篇:账号登录,1. 用户名登录逻辑分析【附代码文档】

美多商城完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;欢迎来到美多商城&#xff01;&#xff0c;项目准备。展示用户注册页面&#xff0c;创建用户模块子应用。用户注册业务实现&#xff0c;用户注册前端逻辑。图形验证码&#xff0c;图形验证码接口设…

常用日常脚本

日常脚本 1&#xff1a;主机初始化脚本 通用脚本&#xff1a; curl -s http://内网ip:3333/soft/shell/init/init_vm.sh |sh 以下是单一功能脚本 2&#xff1a;定时检测dns&#xff0c;并修改为固定dns curl -s http://内网ip:3333/soft/shell/init/deploy_dns_product.sh | s…