标签:mysql sql alter-table
我的Mysql设置有问题:我制作的每个alter table大约需要5分钟才能完成,即使表是完全空的.
有时查询甚至因超时而失败(错误2013:在查询SQL语句期间丢失了与MySQL服务器的连接:ALTER TABLE …).
此外,该表位于测试数据库中,因此不会同时进行其他查询.
我在12 CPU机器上使用Mysql 5.7,所以我不认为硬件是问题所在.
你知道如何解决这个问题吗?
谢谢你的时间
编辑:
运行show full processlist时
Altering table ALTER TABLE ...
Waiting for table metadata lock ALTER TABLE ...
PS:此行为发生在任何表上,并与每个ALTER TABLE语句一起发生
编辑:
这个问题在Mysql 5.7.8中得到了解决
解决方法:
在这里尝试您的查询.
https://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html
如果在查询中有任何不好,你会发现它.
其他
完全转储和重新加载比alter更快.
即
- Create a new table (using the structure of the current table) with the new column(s) included.
- execute a INSERT INTO new_table SELECT (column1,..columnN) FROM current_table;
- rename the current table
- rename the new table using the name of the current table.
标签:mysql,sql,alter-table 来源: https://codeday.me/bug/20190711/1434359.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。