MYSQL里执行SQL语句"update md51 set mwen=mgwen where id>1”报错:
Error Code: 2013. Lost connection to MySQL server during query
SQL语句没有问题 ,可能是执行超时 因为数据量有点大 两亿多条记录!Innodb 表 求指导!应该改哪些SQL参数!MYSQL 大数据
Error Code: 2013. Lost connection to MySQL server during query
SQL语句没有问题 ,可能是执行超时 因为数据量有点大 两亿多条记录!Innodb 表 求指导!应该改哪些SQL参数!MYSQL 大数据
update md51 set mwen=mgwen where id>1 order by id limit 10000,10000;
每次更新的数据量要根据服务器的性能而定。
update md51 set mwen=mgwen where id>1 order by limit 0,50000
....
2e条大概多少GB?内存多大?如果RAM>数据表体积的话,还有可能通过设置Insert Buffering之类的优化,反之,放弃吧,用order by limit来分批处理。
update md51 set mwen=mgwen where id between 10000 and 20000;
id需要是自增主键
为什么我的mysql 不能用 limit 0,10000 这种方式修改啊,是版本限制吗?
linux下在my.cnf里[mysqld]下面添加max_allowed_packet = 2GB(具体要多少,把你这条SQL语句放进一个文本里看看占多少)
win在安装目录下my.ini里最后一行添加。
请在关闭mysql的情况下操作,修改完后再打开看下是否修改成功(主要是linux)
然后在命令提示框里输入show VARIABLES like '%max_allowed_packet%';查看是否修改成功