MySQL Workbench处理数据过大的部分问题

很多使用MySQL Workbench的朋友在处理过大数据时可能会遇到一些问题报错,在此仅列出我所遇见的问题与解决方法

一.超时报错

超时报错一般由于超出Workbench所设定的最大运行时间导致,如下图所示:
在这里插入图片描述
但此段代码在MySQL的命令行中执行时,不会发生错误,仅仅是因为执行时间导致:
MySQL Workbench处理数据过大的部分问题_第1张图片
这种情况我尝试过修改my.ini配置文件,添加一些配置,但重启MySQL服务后则无法连接上Workbench。所以在这个软件本身上找配置,修改即可。

修改步骤

1.进入Workbench,点击Edit,选中对话框中的preferences

MySQL Workbench处理数据过大的部分问题_第2张图片

2.修改下图(已修改过)大方框中第二栏,以秒为单位,之后重启Workbench即可。

MySQL Workbench处理数据过大的部分问题_第3张图片

在修改完之后,处理大数据的过程中虽不会再断开连接,但仍然会有新的问题报错,即下图所示:

在这里插入图片描述

二.超出缓冲区报错

以上问题则是你的缓冲区预留空间不足,导致无法处理一批庞大的数据,但是在命令行中,仍然可以运行此段代码(后来想想既然第一次在命令行可以运行成功,那也就不存在这个问题呢)
遵循严谨性我们还是再次运行一遍如下:
MySQL Workbench处理数据过大的部分问题_第4张图片

解决办法

※以下部分内容来自此博主的文章,在此我仅做一些整理和改动
https://blog.csdn.net/jacson_bai/article/details/44755503

1.首先查看max_write_lock_count

个人认为这不是报错的主要原因,因为这是写入空间,如果报错则应该会在导入数据时报错,而不是到运行查询分类时报错(纯粹个人见解,如若不当请多包涵!)
查询语句show global variables like 'max_write_lock_count';
MySQL Workbench处理数据过大的部分问题_第5张图片
可以看出这个空间的value值有4G,足够存储我的数据,应该不是报错主因。

2.其次查看innodb_buffer_pool_size

查询语句show global variables like 'innodb_buffer%';
MySQL Workbench处理数据过大的部分问题_第6张图片
innodb_buffer_pool_size 的默认大小为 8M,
即缓冲区的大小只有8M,完全不足以处理庞大的数据量,
所以我们需要修改这个值的大小(value值大小可根据自己需求修改):
修改语句set global innodb_buffer_pool_size=4294967296;
MySQL Workbench处理数据过大的部分问题_第7张图片
修改完毕后再次在Workbench中运行尝试:
MySQL Workbench处理数据过大的部分问题_第8张图片
可以正常运行啦~

至此,该部分问题解决,希望对大家有所帮助!

你可能感兴趣的:(MySQL Workbench处理数据过大的部分问题)