MySQL删除表格中的重复记录,并另辟蹊径解决超时报错ERROR 2013 (HY000): Lost connection to MySQL server during query

实验环境

window10专业版&&MySQL8.0

问题背景

1.表格中出现许多重复记录需要删除
2.删除过程中因数据量过大出现超时报错ERROR 2013 (HY000): Lost connection to MySQL server during query

代码

//new为删除后生成的新表,table为原表
create table new

select distinc* from table

出现的问题

数据量过大时会超时,报错ERROR 2013 (HY000): Lost connection to MySQL server during query

先查看各项超时的默认指标

show global variables like '%timeout%';
show global variables like 'max_allowed_packet';

进入C:\ProgramData\MySQL\MySQL Server 8.0目录修改my.ini文件(管理员模式打开)
按照网上方法将max_allowed_packet将默认值改大,这里我直接改成了1024M(激进改法)

并在mysqld下方添加要改大的timeout值(不添加则为默认值)


我的激进改法
connect_timeout=1200
mysqlx_connect_timeout=1200
mysqlx_read_timeout=1200
mysqlx_write_timeout=9000
net_read_timeout=1200
net_write_timeout=9000

重新启动MySQL服务,再次试验后发现还是不行。多次试验各种改大timeout值后依然不成功,可能是数据量实在太大(数据长度7GB),因为课程项目赶中期答辩,只能在此埋个坑,选择了另一种方法:删除属性减少对比量。将十几个属性忍痛删至三个后(去重成功后再通过连接查询补回来),运行成功。难道这就是欲练此功必先自宫吗?哭了。

阉割版数据运行成功
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容