mysql一次性写入大量数据的时候报错

 

修改mysql配置

参数解释

1、innodb_buffer_pool_size = 8G
作用:
  这是 InnoDB 存储引擎用于缓存表和索引数据的内存区域大小。
  数据库主要从内存中读取数据而非磁盘,因此该值越大,系统性能越好(特别是对于大数据量的场景)。
初始值:
  MySQL 5.7 及以下:通常为 128 MB。
  MySQL 8.0:动态设置,通常是系统总内存的 25%。
推荐值:
  设置为可用物理内存的 60%-75%。
如:系统有 4 GB 可用内存,可以设置为 2 GB。

 

2、max_allowed_packet = 128M
作用:
  用于限制 MySQL 客户端和服务器之间传输的最大单个数据包大小(包括 SQL 语句和结果集)。
  数据包过大可能导致服务器负载增加,但设置过小会导致大数据写入或查询失败。
初始值:
  默认值:4 MB。
推荐值:
  如果处理大 JSON 字段或大数据插入,建议设置为 64 MB 或更高(如 128 MB)。
最大值:1 GB。

 

3、net_write_timeout = 600
作用:
  控制服务器在等待客户端写入数据时的超时时间(单位:秒)。
  对于写入大数据的场景(如大 JSON 字段),适当增加此值可以避免因超时导致连接中断。
初始值:
  默认值:60 秒。
推荐值:
  对于大数据操作,建议设置为 300 秒 或更高(如 600 秒)。

 

4、expire_logs_days=7
作用:
  定义二进制日志在过期并被自动删除之前保留的天数,有助于管理硬盘空间,确保不必要的日志不会占用过多磁盘空间。
  依照业务需求调整该选项,通常7到30天是较常见的设置。确保你保留足够的日志以支撑你所有的数据恢复策略。

 

修改完以后记得重启mysql:sudo systemctl restart mysqld

 

posted @ 2024-11-22 15:07  向前走。  阅读(12)  评论(0编辑  收藏  举报