我需要在一个很大的表(~90M 行)中扩展一列。(MySQL 5.1,InnoDB)
这是一个 varchar(15) 列,需要扩展到 varchar(20)。此列是主键的一部分。
我在 mysql 文档中做了一些阅读,看起来将为该进程创建一个临时表,最后将完成交换。所以它不会锁定表。
但是索引重建会是什么样子?我认为它是否必须修改?
它会“一边”重建然后交换,所以没有重大影响吗?
一旦进行了更改,我就会担心性能。
干杯!
我需要在一个很大的表(~90M 行)中扩展一列。(MySQL 5.1,InnoDB)
这是一个 varchar(15) 列,需要扩展到 varchar(20)。此列是主键的一部分。
我在 mysql 文档中做了一些阅读,看起来将为该进程创建一个临时表,最后将完成交换。所以它不会锁定表。
但是索引重建会是什么样子?我认为它是否必须修改?
它会“一边”重建然后交换,所以没有重大影响吗?
一旦进行了更改,我就会担心性能。
干杯!
似乎没有人知道答案,所以我联系了 MySQL 社区论坛。这是线程: http: //forums.mysql.com/read.php?22,572693,572865#msg-572865
在快捷方式中:
在将数据复制到临时表的过程中会重新创建索引。它将在表交换期间到位。