Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySql添加新列会导致连接过多_Mysql_Sql - Fatal编程技术网

MySql添加新列会导致连接过多

MySql添加新列会导致连接过多,mysql,sql,Mysql,Sql,我的问题是,当我向live数据库添加新列时,MySQL遇到了“连接太多”错误 数据库有100万条记录,因此添加这些记录需要一段时间 表锁定的原因是什么 如何保持桌子运行 我对具有100万条记录的表执行的查询(InnoDB) 谢谢 尝试运行显示进程列表以查看连接是什么。 我还要看一下您的mysql配置,特别是检查max_connections设置。更改该设置将需要重新启动mysql服务器。 InnoDB需要一个表锁,对此您无能为力 看看这些,了解一些如何做到这一点的想法: 及 众所周知,

我的问题是,当我向live数据库添加新列时,MySQL遇到了“连接太多”错误

数据库有100万条记录,因此添加这些记录需要一段时间

  • 表锁定的原因是什么
  • 如何保持桌子运行
我对具有100万条记录的表执行的查询(InnoDB)


谢谢

尝试运行
显示进程列表以查看连接是什么。

我还要看一下您的mysql配置,特别是检查max_connections设置。更改该设置将需要重新启动mysql服务器。

InnoDB需要一个表锁,对此您无能为力

看看这些,了解一些如何做到这一点的想法:


众所周知,mysql在添加列方面非常慢

据我所知,所有数据库在添加列时都会锁定表,因为它们正在更改磁盘上的布局,并且需要大量的I/O


通常,它的速度非常慢(尤其是mysql),在生产环境中的做法是创建一个带有额外列的新表,跨多个列复制数据,重命名表,然后开始使用新表。执行此操作时,您当然会停止写访问,但完成此操作的速度要快得多。

是的,我认为在这样的过程中,没有其他解决方案可以让表保持活动状态。谢谢你的回答!谢谢你的回答和链接。我认为这不是达到MySQL最大连接数的好选择,你会很快遇到同样的问题(我猜)。无论如何,谢谢你的回答:)
ALTER TABLE table_name 
ADD COLUMN new_table_column INT(11) NULL 
DEFAULT NULL ;