Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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_Database - Fatal编程技术网

在实时服务器上更改MYSQL数据库表

在实时服务器上更改MYSQL数据库表,mysql,database,Mysql,Database,嗨,我们有一个数据库,在这个特定的表上,每秒读写3到4条记录,在这个表上要添加一个新列。此表有60000多条记录。 我需要给这个添加一个新列。 MySQL>ALTER tablename ADD columnname int(1) 做这件事最安全的方法是什么。是否可以在不停止MYSQL服务器的情况下添加此新列,并且在更新过程中不丢失新记录,因为我认为这将花费相当长的时间?MYSQL文档(http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

嗨,我们有一个数据库,在这个特定的表上,每秒读写3到4条记录,在这个表上要添加一个新列。此表有60000多条记录。 我需要给这个添加一个新列。 MySQL>ALTER tablename ADD columnname int(1)

做这件事最安全的方法是什么。是否可以在不停止MYSQL服务器的情况下添加此新列,并且在更新过程中不丢失新记录,因为我认为这将花费相当长的时间?

MYSQL文档(http://dev.mysql.com/doc/refman/5.1/en/alter-table.html)提供以下信息:

在大多数情况下,ALTER TABLE会临时复制原始表。MySQL等待修改表的其他操作,然后继续。它将修改合并到副本中,删除原始表,并重命名新表。在执行ALTERTABLE时,其他会话可以读取原始表在ALTER table操作开始后开始的对表的更新和写入被暂停,直到新表准备就绪,然后自动重定向到新表,而不发生任何失败的更新。临时表在新表的数据库目录中创建。”

根据文档,不应该有任何数据丢失。但一如既往,在对实时系统执行任何更改之前,请在测试机器上检查相同的场景