我们在做数据备份时,如果一个表中的数据很大,通常会把这个表的数据写成一个很大的insert into语句,导致插入语句超过数据库缓冲区的大小,解决办法通常是加大缓冲区的容量,当然也可以拆分insert into语句,参考工具是SplitInsert;
加大缓冲区容量的办法:
修改my.cnf配置文件:
[mysqld]
max_allowed_packet = 50M
大小根据实际情况来定,我曾看过一个表的插入语句有30M左右,所以这里设置为50M。
本文介绍在数据库备份过程中遇到大表数据导致插入语句超过缓冲区大小的问题解决方案。包括通过调整my.cnf配置文件中的max_allowed_packet参数来增加缓冲区容量,以及使用SplitInsert工具将大插入语句拆分为多个更小的语句以避免缓冲区溢出。实例如何将一个30M左右的插入语句调整至50M以优化性能。
我们在做数据备份时,如果一个表中的数据很大,通常会把这个表的数据写成一个很大的insert into语句,导致插入语句超过数据库缓冲区的大小,解决办法通常是加大缓冲区的容量,当然也可以拆分insert into语句,参考工具是SplitInsert;
加大缓冲区容量的办法:
修改my.cnf配置文件:
[mysqld]
max_allowed_packet = 50M
大小根据实际情况来定,我曾看过一个表的插入语句有30M左右,所以这里设置为50M。
947

被折叠的 条评论
为什么被折叠?