Mysql性能调优之max_allowed_packet使用及说明

Mysql max_allowed_packet使用

max_allowed_packet是什么?

指mysql服务器端和客户端在一次传送数据包的过程当中最大允许的数据包大小。

什么情况下遇到?

有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败。

  • 场景一:将本地数据库迁移到远程数据库时运行sql错误。错误信息是max_allowed_packet
  • 场景二:插入数据时某个字段数据过于庞大(使用Elmentui编辑器自带的图片加密,图片过多,地址超级长,最好用的时候改成自定义的),会报

Packet for query is too large (20682943>1048576). You can change this value on the server by setting the max_allowed_packet’ variable.

Mysql性能调优之max_allowed_packet使用及说明

解决办法?

调整mysql的配置文件

mysql 56中该参数修改好像无效,所以需要升级数据库到mysql57

window下修改配置文件my.ini 在mysqld段下添加

 max_allowed_packet = 64M 

后面的数字根据实际情况调优

linux下修改etc/my.cnf ,同样在mysqld段下添加

 max_allowed_packet = 64M 

注意改完参数后需要重启mysql服务

查看目前配置

show VARIABLES like '%max_allowed_packet%';

Mysql性能调优之max_allowed_packet使用及说明

写入Mysql报错超出max_allowed_packet

Mysql会根据配置文件会限制server接受的数据包的大小。

如果写入大数据时,因为默认的配置太小,插入和更新操作会因为 max_allowed_packet 参数限制,而导致失败。

查看当前配置

mysql> show variables like 'max_allowed_packet';
+--------------------+---------+
| Variable_name   | Value  |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set (0.00 sec)

也可以用select查看

mysql> select @@max_allowed_packet;
+----------------------+
| @@max_allowed_packet |
+----------------------+
|       4194304 |
+----------------------+
1 row in set (0.00 sec)

mysql>

max_allowed_packet 如果不设置,默认值在不同的 MySQL 版本表现不同,有的版本默认1M,有的版本默认4M。

修改方法1(配置文件持久化修改)

vim /etc/my.cnf
[mysqld]
max_allowed_packet = 100M

注意:修改配置文件以后,需要重启mysql服务才能生效。

mysql> show variables like '%max_allowed_pack%';
+--------------------+-----------+
| Variable_name   | Value   |
+--------------------+-----------+
| max_allowed_packet | 104857600 |
+--------------------+-----------+
1 row in set (0.00 sec)

修改方法2(命令行临时修改)

mysql> set global max_allowed_packet = 100 * 1024 * 1024;
mysql> exit
[root@localhost opt]#
[root@localhost opt]# mysql -uroot
mysql>
mysql> select @@max_allowed_packet;
+----------------------+
| @@max_allowed_packet |
+----------------------+
|      104857600 |
+----------------------+
1 row in set (0.00 sec)

mysql>

注意:

1.命令行修改时,不能用M、G,只能这算成字节数设置。配置文件修改才允许设置M、G单位。

2.命令行修改之后,需要退出当前回话(关闭当前mySQL Server链接),然后重新登录才能查看修改后的值。通过命令行修改只能临时生效,下次数据库重启后又复原了。

3.max_allowed_packet 最大值是1G(1073741824),如果设置超过1G,查看最终生效结果也只有1G。

[mysqld]
max_allowed_packet = 1G

mysql> show variables like '%max_allowed_pack%';
+--------------------+------------+
| Variable_name   | Value   |
+--------------------+------------+
| max_allowed_packet | 1073741824 |
+--------------------+------------+
1 row in set (0.00 sec)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

您可能感兴趣的文档:

--结束END--

本文标题: Mysql性能调优之max_allowed_packet使用及说明

本文链接: https://www.lsjlt.com/news/173551.html (转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢

  • Mysql性能调优之max_allowed_packet使用及说明

    目录mysql max_allowed_packet使用max_allowed_packet是www.cppcns.com什么?什么情况下遇到?解决办法?写入Mysql报错超出max_allowed_packet查看当前配置也可以用sele
  • Mysql中max_allowed_packet设定的示例分析

    小编给大家分享一下Mysql中max_allowed_packet设定的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!max_allowed_packet是Mysql中的一个设定参数,用于设定所接受的包的大小,根据
    阅读数:662 mysql
  • MySQL性能调优

    对于全栈而言,数据库技能不可或缺,关系型数据库或者nosql,内存型数据库或者偏磁盘存储的数据库,对象存储的数据库或者图数据库……林林总总,但是第一必备技能还应该是MySQL。从LAMP的兴起,到Mariadb的出现,甚至PG的到来,熟练的
    阅读数:954 mysql
  • MySQL性能分析、及调优工具使用详解

    本文汇总了MySQL DBA日常工作中用到的些工具,方便初学者,也便于自己查阅。先介绍下基础设施(CPU、IO、网络等)检查的工具:vmstat、sar(sysstat工具包)、mpstat、oprofile、nicstat、dstat、i
    阅读数:588 mysql 性能分析 调优工具
  • 怎么理解MySQL性能调优

    本篇内容介绍了“怎么理解MySQL性能调优”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!MySQL性能调优概述影响MySQL性能的因素主要有
    阅读数:169 mysql
  • redis性能调优

    针对Redis的性能优化,主要从下面几个层面入手:最初的也是最重要的,确保没有让Redis执行耗时长的命令使用pipelining将连续执行的命令组合执行,使用pipelining时,只需要从客户端一次向Redis发送多条命令(以\r\n)
    阅读数:907 redis 调优 edi
  • MySQL性能调优之查询优化的方法

    本篇内容介绍了“MySQL性能调优之查询优化的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、查询慢的原因1、网络2、CPU3、IO4
    阅读数:234 mysql
  • 如何对MySQL性能实现调优

    本文主要给大家简单讲讲如何对MySQL性能实现调优,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望如何对MySQL性能实现调优这篇文章可以给大家带来一些实际帮助。MySQL性能调优提高MySQ
    阅读数:874 mysql 性能调优 sql性能
  • oracle性能调优学习0622

    查询数据库中的等待事件:SET lines 100SET pages 10000COLUMN wait_class format a12COLUMN event format a30COLUMN total_waits format 999
    阅读数:186 orace acle 062
  • 性能调优的通用准则

    一句话:多加一层,就好了。比如:1.加一层中间层,隔离数据库和客户端,可以提高整体的吞吐和性能;2.加一层缓存,把查询结果缓存起来,无需实际执行物理查询,提升性能;3.加一层负载均衡设备,分发到不同的节点上,提升整体性能;……
    阅读数:797 准则 调优 通用
  • oracle性能调优-虚拟索引

    一、引言DBA在日常维护管理数据库进行低性能SQL分析时,有时候需要通过创建索引对SQL进行优化,但有些时候我们创建的索引是否能用到?这个只能创建以后才能看出效果,但是在实际工作中,特别是对大表创建索引对系统性能有很大影响,因此我们
    阅读数:442 oracle 调优 性能
  • 如何调优jQuery的性能

    这篇文章将为大家详细讲解有关如何调优jQuery的性能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。创建性能测试关于性能测试的第一步是创建一个合适的性能测试。jQuery 以及其他 Java
    阅读数:424 jquery
  • .Net性能调优-ArrayPool详情

    ArrayPool具有高性能 托管 数组缓冲池,可重复使用,用 租用 空间的方式代替 重新分配 数组空间的行为的特点及可以在频繁创建和销毁数组的情况下 提高性能 ,减少垃圾回收器的压力的优点,下面文章内容将详细对其做介绍,需要的朋友可以参考一下
  • mysql 调优

    1、查看当前数据库进程 show processlist; 2、 查看数据库的最大连接数 show variables like "%max_connections%"; 3、 查看数据库当前连接数,并发数。 show status like "Threads
    阅读数:163 mysql 调优
  • mysql性能检查和调优的方法

    本篇内容主要讲解“mysql性能检查和调优的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql性能检查和调优的方法”吧!我一直是使用mysql这个软件,它工作比较稳定,效率也很高。在遇
    阅读数:446 mysql
  • oracle 10g性能调优

    原文http://www.oracle.com/technetwork/articles/schumacher-analysis-099313.html 数据库Oracle 10 g,许多以前难以得到的响应时间指标马上就可以获得了。历史上,
    阅读数:901 oracle数据库调优 acle
  • sqlserver性能调优的方式

    本篇内容主要讲解“sqlserver性能调优的方式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“sqlserver性能调优的方式”吧!首先搞清楚,性能调优的目标从最直观,最常见的角度来讲,主要包
    阅读数:188 sqlserver
  • 6\MySQL 主从同步 、 MySQL 读写分离 、 MySQL 性能调优

    day06一、mysql主从同步 二、数据读写分离三、MySQL优化++++++++++++++++++++++++++++++++一、mysql主从同步 1.1主从同步介绍?从库服务器自动同步主库上数据(被客户端访问的数据库服务器做主
    阅读数:409 mysql 主从同步
  • mysql-调优

    mysql调优1.选择合适的存储引擎经常用来读的表使用myisam引擎其余的表都使用innodb引擎2.SQL语句调优(尽量避免全表扫描)在select where order by常涉及到的字段上建立索引where语句中不使用 !=,否则将放弃使用索引进行全
    阅读数:170 mysql-调优
  • mysql之调优概论的案例分析

    小编给大家分享一下mysql之调优概论的案例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一简介咱们先不说cpu的频率,内存的大小(这个和索引一样重要,但
    阅读数:531 mysql