更改 VARCHAR 字段的长度后重新生成索引

Regenerate indexes after changing length of VARCHAR field

我的 MySQL 数据库中有一个 InnoDB table。在其中,我有一个字段(不是主键)是 VARCHAR(20)。它被编入索引。

但最近,我不得不将大小增加到 75。即VARCHAR(75)

那么,我需要做些什么来重新索引这个字段吗?还是索引会自动更新或不受影响?

目前,此 table 仅包含大约 2000 行。

此外,如果我想增加大小的是 PRIMARY KEY 字段怎么办?也就是说,假设我的主键是 VARCHAR 并且希望增加字段长度。

增加 varchar 的大小不会影响索引。您可以继续使用而无需重新创建索引。

索引会在您更改列定义时更新。

在对 table 进行重大更改后,

ANALYZE TABLE mytable; 总是一个好主意;它会更新索引统计信息,以便查询计划器可以完成最好的工作。

主要更改包括对索引列的许多插入、删除或更新,以及更改 table。