【MySQL】基础篇
1. MySQL中的NULL值是怎么存放的?
MySQL的compact行格式中会用【NULL值列表】来标记值为NULL的列,NULL值不会存储在行格式中的真实数据部分。
NULL值列表会占用1字节空间,当表中所有字段都被定义成NOT NULL,行格式中就不会有NULL值列表,可节省1字节空间
【1字节8位,每位用0或1填充,0代表不是NULL,1代表为NULL,用0补齐成8位,当列较多时,NULL值列表占用的字节空间可变。】
2.MySQL怎么知道varchar(n)实际占用数据的大小?
MySQL的Compact行格式中会用【变长字段长度列表】存储变长字段实际占用的数据大小。
3.varchar(n)中n最大取值为多少?
一行记录最大能存储65535字节的数据,但这个是包含【变长字段字节数列表所占用的字节数】和【NULL值列表所占用的字节数】。所以,在算varchar(n)中最大值时,需要减去这两个列表所占用的字节数。
如果一张表只有一个varchar(n)字段,且允许为NULL,字符集为ascii。varchar(n)中n最大取值为65536-变长字段字节数列表所占用的字节数-null值列表所占用的字节数=65535-2-1=【65532】。
如果有多个字段的话,要保证所有字段的长度+变长字段字节数列表所占用的字节数+NULL值列表所占用的字节数<=65535。
4.行溢出后,MySQL是怎么处理的?
如果一个数据页存不了一条记录,InnoDB存储引擎会自动将溢出的数据存放在【溢出页】中。
Compact行格式:当发生行溢出时,在记录的真实数据处只会保存该的一部分数据,剩余数据放在【溢出页】中,然后真实数据处用【20字节】存储指向溢出页的地址,从而找到剩余数据所在的页。
Compressed和Dynamic两种格式采用【完全的行溢出】方式,记录的真实数据处不会存储该列的一部分数据,只存储20个字节的指针来指向溢出页。实际的数据全部存储在溢出页中。
相关文章:
【MySQL】基础篇
1. MySQL中的NULL值是怎么存放的? MySQL的compact行格式中会用【NULL值列表】来标记值为NULL的列,NULL值不会存储在行格式中的真实数据部分。 NULL值列表会占用1字节空间,当表中所有字段都被定义成NOT NULL,行格式中就不会有NULL值…...
vscode环境搭建
目录 一、安装VSCode 二、安装Python 三、安装Anaconda(可选,但推荐) 四、安装深度学习相关库 五、配置VSCode 六、 结果可视化 一、安装VSCode 访问官网下载:从VSCode官方网站下载适合你操作系统的安装包。安装:运行安…...
tp whereOr用法2
有时候会用到多个whereOr 可以用闭包来完成查询 Db::name(table_name)->whereOr([[age,null,],[age,,]])->select();Db::name(table_name)->whereOr([[birthday,null,],[birthday,,]])->select();这两个是OR(或)关系 Db::name(table_name)->whereOr([[age,nul…...
前端面试题目---页面抖动的原因、如何避免、如何解决
前端页面抖动是一个常见且影响用户体验的问题,下面将从抖动发生的场景、解决办法以及预防措施三个方面进行详细阐述。 页面抖动发生的场景 1. 元素尺寸动态变化 图片加载:当页面中图片的宽高没有预先设定,在图片加载完成后,其实…...
Spring Boot整合DeepSeek实现AI对话(API调用和本地部署)
本篇文章会分基于DeepSeek开放平台上的API,以及本地私有化部署DeepSeek R1模型两种方式来整合使用。 本地化私有部署可以参考这篇博文 全面认识了解DeepSeek利用ollama在本地部署、使用和体验deepseek-r1大模型 Spring版本选择 根据Spring官网的描述 Spring AI是一…...
DeepSeek 的 API 服务引入 WPS Office
以下是将 DeepSeek 的 API 服务引入 WPS Office 的通用集成教程。以调用 DeepSeek 的 AI 功能(如文本生成、数据分析)为例,假设你需要通过 WPS 的宏或插件调用外部 API: 准备工作 注册 DeepSeek 账号并获取 API Key 访问 DeepSe…...
在Vue中,JavaScript数组常用方法,添加,插入,查找,删除等整理
在Vue中,JavaScript数组常用,添加,插入,查找,删除等整理 1.splice()方法可以直接修改原数组,通过指定要删除元素的索引来删除它。 例: let index // 要删除的元素的索引; this.array.splice(i…...
树莓派上 基于Opencv 实现人脸检测与人脸识别
一,需求 基于树莓派4b,usb1080p摄像头,实现人脸检测与人脸识别。尝试了海陵科的模组和百度的sdk。海陵科的模组无法录入人脸,浪费了100多块钱。百度的sdk 在树莓派上也无法录入人脸,官方解决不了。最后只能用opencv自…...
Unity 接入Tripo 文生模型,图生模型
官方网站:https://www.tripo3d.ai/app/home自行注册账号并且登陆下载Unity插件:https://cdn-web.tripo3d.ai/plugin/tripo-unity.zip申请apikey: https://platform.tripo3d.ai/api-keys使用(后续过程就按照第二步下载的插件里面的…...
Redis常见数据结构
目录 基本介绍 特点: 全局命令 数据类型: String Hash List Set Zset 基本介绍 Redis是一个在内存中存储数据的中间件,可作为数据库,缓存,消息队列等。 特点: 持久化:Redis会把数据存储在内存中…...
fps动作系统9:动画音频
文章目录 音频单播放音频文件也是可以的,只不过是2d声音。创建音频蓝图cue(音效)音量乘数 衰减(空间效果)音量自然声音内部半径衰减距离 空间化双声道 绑定到动画动画序列轨道 音频 单播放音频文件也是可以的,只不过是2d声音。 创建音频蓝图 cue(音效…...
十四、GitLab 流水线自动化部署之 Windows Server
一、软件下载 本文章采用 Windows 版本的 Gitlab Runner 客户端,下载地址参考如下: 链接:https://pan.baidu.com/s/1nktWQGR4toRpgzEn9Qj3kQ?pwd0p1d 提取码:0p1d --来自百度网盘超级会员V7的分享 二、环境安装 1、Java 环境…...
数据库数据恢复—MongoDB丢失_mdb_catalog.wt文件导致报错的数据恢复案例
MongoDB数据库存储模式为文档数据存储库,存储方式是将文档存储在集合之中。 MongoDB数据库是开源数据库,同时提供具有附加功能的商业版本。 MongoDB中的数据是以键值对(key-value pairs)的形式显示的。在模式设计上,数据库受到的约束更少。这…...
mysql8.0使用MGR实现高可用与利用MySQL Router构建读写分离MGR集群
MGR是MySQL Group Replication的缩写,即MySQL组复制。 在以往,我们一般是利用MySQL的主从复制或半同步复制来提供高可用解决方案,但这存在以下几个比较严重的问题: 主从复制间容易发生复制延迟,尤其是在5.6以前的版本…...
基于Ubuntu2404搭建k8s-1.31集群
k8s 1.31 环境初始化安装Container安装runc安装CNI插件部署k8s集群安装crictl使用kubeadm部署集群节点加入集群部署Calico网络配置dashboard 本实验基于VMware创建的Ubuntu2404虚拟机搭建k8s 1.31版本集群,架构为一主一从,容器运行时使用Container&#…...
Golang的图形编程应用案例
Golang的图形编程应用案例 一、Golang的图形编程概述 是一种高效、可靠且易于使用的编程语言,具有并发性和简洁性,因此在图形编程领域也有着广泛的应用。Golang的图形编程主要通过各种图形库来实现,其中最知名的是Go图形库(Ebiten…...
PostgreSQL 错误代码 23505 : ERROR: duplicate key value violates unique constraint
目录 1. 确认错误信息2. 检查数据3. 处理重复数据4. 检查唯一约束5. 添加唯一约束6. 使用事务处理并发操作7. 使用触发器8. 使用 ON CONFLICT 子句9. 重置序列10. 捕获异常并重试 错误代码 23505 是 PostgreSQL 中表示违反唯一约束(unique violation)的标…...
基于SpringBoot和PostGIS的省域“地理难抵点(最纵深处)”检索及可视化实践
目录 前言 1、研究背景 2、研究意义 一、研究目标 1、“地理难抵点”的概念 二、“难抵点”空间检索实现 1、数据获取与处理 2、计算流程 3、难抵点计算 4、WebGIS可视化 三、成果展示 1、华东地区 2、华南地区 3、华中地区 4、华北地区 5、西北地区 6、西南地…...
MySQL InnoDB引擎 MVCC
MVCC(Multi-Version Concurrency Control)即多版本并发控制,是 MySQL 的 InnoDB 存储引擎实现并发控制的一种重要技术。它在很多情况下避免了加锁操作,从而提高了数据库的并发性能。 一、原理 MVCC 的核心思想是通过保存数据在某…...
服务器使用centos7.9操作系统前需要做的准备工作
文章目录 前言1.操作记录 总结 前言 记录一下centos7.9操作系统的服务器在部署业务服务之前需要做的准备工作。 大家可以复制到自己的编辑器里面,有需求的注释一些步骤。 备注:有条件的项目推荐使用有长期支持的操作系统版本。 1.操作记录 # 更换阿里云…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...
stm32wle5 lpuart DMA数据不接收
配置波特率9600时,需要使用外部低速晶振...
Java后端检查空条件查询
通过抛出运行异常:throw new RuntimeException("请输入查询条件!");BranchWarehouseServiceImpl.java // 查询试剂交易(入库/出库)记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…...
