添加列的MySQL数据库负载,默认与添加列和保留空

时间:2017-04-11 22:40:28

标签: mysql sql migration

考虑两个SQL语句。

ALTER TABLE books ADD COLUMN num_sold int DEFAULT 0

ALTER TABLE books ADD COLUMN num_sold int

一般的想法是,在一种情况下我们设置一个默认值,在下一个我们只是让它从NULL开始。

对于具有默认值的版本,数据库负载是否会显着增加?更一般地说,我想知道在这两种情况下,“引擎盖下”会发生什么变化 - 磁盘上需要更改的内容,创建的锁定以及持续时间等等。

1 个答案:

答案 0 :(得分:1)

如果您意识到省略默认值与default null相同,则可能会有所帮助。

在记录中设置值时,所有值都会同时设置。无论是提供值(在insert / load机制中)还是从元数据确定的值,在性能方面都会产生非常微不足道的差异。这不是你应该担心的事情。