MySQL笔记-对max_allowed_packet的进一步理解(2024-10-28)

背景

最近不仅仅在做开发,还在不停的做实施,运维。以前都不太喜欢做实施,运维,但是工作6年后,对这些还是比较感兴趣了,毕竟计算机这块不仅仅是开发,还有很多岗位,并且实施和运维会从其他角度加深对某个产品或系统的理解,比如这次的MySQL,在导库时出现的max_allowed_packet相关的报错,以前刚开始工作没多久也遇到过,但没想这么多,就照着网上的方案,敲1,2条命令就解决了。但现在想进一步了解下为什么会有这种机制,其好处是什么,也就有了此篇博文。

解决方法

TablePlus网站给出了3种解决方法,通俗易懂。

MySQL - How to modify the max_allowed_packet size? | TablePlus

第一种,可以直接在运行的系统上进行配置,但MySQL重启后就失效了。第二种和第三种是在mysql启动时的配置,永久生效的。

进一步理解

关键的问题来了,为什么MySQL会有这条配置,其好处是什么?通过相关资料的查阅,得到了如下的信息。这些好处我个人感觉也是比较合理的:

  1. 控制数据包大小:
    1. 目的: 限制从客户端发送到服务器或从服务器发送到客户端的数据包的最大大小。
    2. 重要性: 过大的数据包可能导致资源耗尽(如内存),影响数据库服务器的性能和响应能力。
  2. 提升性能:
    1. 目的: 在适度的范围内允许发送较大的数据包,以减少网络往返次数。
    2. 重要性: 在执行批量插入、更新或处理大数据(如 BLOB、长文本等)时,适当提高 max_allowed_packet 可以减小网络延迟,提高整体性能。
  3. 保护系统资源:
    1. 目的: 预防恶意用户或错误代码试图通过发送巨大的数据包来耗尽服务器资源。
    2. 重要性: 合理的限制可以增强系统的安全性,降低拒绝服务攻击(DoS)的风险。
  4. 合理的数据交互:
    1. 目的: 数据库支持多种不同类型的数据交互,灵活设置该参数以满足不同需求。
    2. 重要性: 在不同应用和负载场景下,数据库的需求和行为会有所不同,max_allowed_packet 的灵活性使得数据库能够适应这些变化,优化其性能。

从中又可以进行延伸一个问题,max_allowed_packet针对的一条完整的sql语句,还是某个字段的值?还是程序与mysql的一次数据交互?

对应的解答如下:

max_allowed_packet 参数针对的是 一次数据交互 或 数据库操作 中的整个数据包,而不仅仅是某条完整的 SQL 语句或某个字段的值。具体来说,它的作用包括:

  1. 单条 SQL 语句: 如果一条 SQL 语句的整体数据包(包括语句本身和所有绑定的数据)超过了 max_allowed_packet 的限制,它将无法执行。
  2. 多个字段的综合数据: 如果你要插入或更新的数据中包含的字段总和(例如多个 TEXT 或 BLOB 类型字段)在某次操作中超过了这个限制,也会导致操作失败。
  3. 一次连接交互: 在建立连接或执行某个操作时,整个数据包(包含控制信息、SQL 语句及参数)必须在该限制范围内。

因此,调整 max_allowed_packet 的大小,有助于确保在处理较大查询时(尤其是涉及大量数据的情况)能够顺利进行而不产生错误。

最终给出一个总结:

在选择 max_allowed_packet 的值时,建议结合应用需求、数据库结构和测试结果,进行合理调整,确保性能和安全性达到最佳平衡!

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

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

相关文章

Elasticsearch:探索 CLIP 替代方案

作者:来自 Elastic Jeffrey Rengifo 及 Toms Mura 分析图像到图像和文本到图像搜索的 CLIP 模型的替代方案。 在本文中,我们将通过一个模拟房地产网站的实际示例介绍 CLIP 多模态模型,探索替代方案,并分析它们的优缺点&#xff0c…

Spring中的日志

日志 了解一下 (有个印象) 门面模式 (外观模式) 含有两种角色: Facade (外观角色 / 门面角色): 系统对外的统一接口。SubSystem (子系统角色): 可以含有多个子系统,每个子系统都不是单独的类,而是一个类的集合。 Facade 对 SubSystem 是…

uniapp邪门事件

很久之前在这篇《THREEJS 在 uni-app 中使用(微信小程序)》:THREEJS 在 uni-app 中使用(微信小程序)_uni-app_帶刺的小葡萄-华为开发者空间 中学到了如何在uniapp的微信小程序里接入three.js的3d模型 由于小程序自身很…

C#项目04——递归求和

实现逻辑 利用递归,求取1~N以内的和 知识点 正常情况下,C#每条线程都会分配1MB的地址空间,因此执行递归的层次不能太深,否则就会出现溢出的风险, 业务设计 程序代码 private void button1_Click(object sender, E…

SQLMesh 系列教程6- 详解 Python 模型

本文将介绍 SQLMesh 的 Python 模型,探讨其定义、优势及在企业业务场景中的应用。SQLMesh 不仅支持 SQL 模型,还允许通过 Python 编写数据模型,提供更高的灵活性和可编程性。我们将通过一个电商平台的实例,展示如何使用 Python 模…

docker修改镜像默认存储路径(基于 WSL2 的迁移方法)

文章目录 打开powershell窗口1、停止 WSL2、导出数据3、取消注册4、导入数据到新位置5、确认转移情况6、重新启动 Docker Desktop7、查看 打开powershell窗口 任意地方shift右键 1、停止 WSL wsl --shutdown2、导出数据 wsl --export docker-desktop-data E:\docker\Docke…

Java开发实习面试笔试题(含答案)

在广州一家中大公司面试(BOSS标注是1000-9999人,薪资2-3k),招聘上写着Java开发,基本没有标注前端要求,但是到场知道是前后端分离人不分离。开始先让你做笔试(12道问答4道SQL题)&…

火语言RPA--Excel读取内容

【组件功能】:读取Excel内指定位置的内容或读取整篇Sheet页内容 配置预览 配置说明 读取位置 单元格:读取指定单元格中的内容。 行:读取指定行内容。 列:读取指定列内容。 区域:读取指定区域内容。 整篇sheet页&…

基于Flask的第七次人口普查数据分析系统的设计与实现

【Flask】基于Flask的第七次人口普查数据分析系统的设计与实现(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 基于Flask的人口普查可视化分析系统 二、项目界面展示 登录/注册 首页/详情 …

国产编辑器EverEdit -告别东找西找!一键打开当前文件所在目录!

1 文件操作 2 应用场景 在文件编辑过程中,有时需要对文件进行一些操作,比如:在命令窗口输入文件路径、文件名,进入到文件目录,对文件进行压缩等,如果没有直达命令,用户需要通过文件管理器找到目…

html网络安全工具源码 网络安全前端

🍅 点击文末小卡片 ,免费获取网络安全全套资料,资料在手,涨薪更快 前端常见的网络安全包括:xss(跨站脚本攻击)、csrf(跨站请求伪造)、sql注入攻击等。 1)跨站…

【分布式理论14】分布式数据库存储:分表分库、主从复制与数据扩容策略

文章目录 一、分表分库1. 数据分表的必要性与方式2. 数据分库原则与优势 二、主从复制1. 读写分离架构设计2. 数据复制方式3. MySQL实现主从复制4. MySQL主从复制实践与高可用方案 三、数据扩容 随着业务的不断发展和数据量的增长,传统的单机关系型数据库已经逐渐不…

汇能感知的光谱相机/模块产品有哪些?

CM020A 分辨率:1600H1200V 光谱范围:350~950nm 光谱分辨率:1nm 接口:USB2.0 帧率:16001200 (6帧) 输出格式:Raw 8bit FOV:D73.5H58.8V44.1 相机尺寸:505055mm VM02S10 分辨率…

sentinel集成nacos做持久化配置

sentinel提供了非常强大的控制台来提供流控等功能,但是控制台只是临时的配置,想要将流控配置永久的保存,或者在项目启动的时候就加载,不需要手动设置,就需要使用到nacos与sentinel做集成配置。这里都是不变代码&#x…

SpringBoot速成概括

视频:黑马程序员SpringBoot3Vue3全套视频教程,springbootvue企业级全栈开发从基础、实战到面试一套通关_哔哩哔哩_bilibili 图示:

【含文档+PPT+源码】基于微信小程序的猎兔汽车保养维修美容服务平台的设计与实现

项目介绍 本课程演示的是一款基于微信小程序的猎兔汽车保养维修美容服务平台的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部…

Python在网络安全中的应用 python与网络安全

前言 网络安全是保护网络、系统和程序免受数字攻击的做法。据估计, 2019 年该行业价值 1120 亿美元,到2021 年估计有 350 万个职位空缺。 许多编程语言用于执行与网络安全相关的日常任务,但其中一种已成为行业标准:Python&#…

Mac 清理缓存,提高内存空间

步骤 1.打开【访达】 2.菜单栏第五个功能【前往】,点击【个人】 3.【command shift J】显示所有文件,打开【资源库】 4.删除【Containers】和【Caches】文件 Containers 文件夹:用于存储每个应用程序的沙盒数据,确保应用程序…

基于SpringBoot实现的宠物领养系统平台功能一

一、前言介绍: 1.1 项目摘要 宠物领养需求增加:随着人们生活水平的提高和对宠物养护意识的增强,越来越多的人选择领养宠物作为家庭的一员。这导致了宠物领养需求的显著增加。 传统领养方式存在问题:传统的宠物领养方式&#xf…

智慧能源管理新标杆:安科瑞EMS3.0解锁工业园区经济效益与环保双赢

智慧能源平台是一种集成分布式能源、储能系统、负荷管理和智能控制技术的综合能源管理系统。它能够实现能源的高效利用、优化调度和智能化管理,为用户提供稳定、经济、绿色的能源解决方案。工业园区作为能源消耗和管理的核心场景之一,对微电网能源管理平…