Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.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_Alter Table - Fatal编程技术网

添加空列非常大的MySQL表-是否比添加到一个小表需要更长的时间?

添加空列非常大的MySQL表-是否比添加到一个小表需要更长的时间?,mysql,sql,alter-table,Mysql,Sql,Alter Table,逻辑上说,即使添加到非常大(约800 GB)的表中,添加NULL列也应该非常快 显然,如果ALTER表对于新列有一个notnull,这将花费很长时间,但是对于NULL列如何?这和改变一张小桌子相比怎么样 我使用的是MySql 5.5 谢谢 MySQL实现为一个表 在大多数情况下,altertable会临时复制原始表(…) 将更改合并到副本中,删除原始表格, 并重新命名新的 手册继续解释“大多数情况”的含义。基本上:添加、删除和重新定义列 只有表的大小才重要,列类型对执行时间几乎没有影响。在系统上

逻辑上说,即使添加到非常大(约800 GB)的表中,添加
NULL
列也应该非常快

显然,如果
ALTER表
对于新列有一个
notnull
,这将花费很长时间,但是对于
NULL
列如何?这和改变一张小桌子相比怎么样

我使用的是MySql 5.5

谢谢

MySQL实现为一个表

在大多数情况下,
altertable
会临时复制原始表(…) 将更改合并到副本中,删除原始表格, 并重新命名新的

手册继续解释“大多数情况”的含义。基本上:添加、删除和重新定义列


只有表的大小才重要,列类型对执行时间几乎没有影响。

在系统上计时如何?逻辑是。。。令人惊讶的有时我会去,但很明显,我听到了其他可能尝试这样做的人对他们在MySQL上的体验所说的话。否则我就不会发帖了,是吗?:)@确切地说,因此hahaalternate的问题是创建一个新的带有新列的临时表,复制数据,重命名旧表,重命名新表,进行验证,在需要时删除旧表。mysql在向大型表添加列时速度非常慢,这是出了名的。我已经看到,仅仅10个百万行就需要几个小时。谢谢,这就是我要找的。我在文件中看到了这一点,但不确定他们所说的“大多数情况”是什么意思。是的,我也不得不读两遍才能弄明白这一点。事实上,它们提供了一个操作列表,其中“可以使用不需要临时表的就地ALTER表”。