MySQL中如何重建索引
为什么需要重建索引?
索引可能因为删除,或者页分裂等原因,导致数据页有空洞,重建索引的过程会创建一个新的索引,把数据按顺序插入,这样页面的利用率高,也就是索引更紧凑、更省空间。
假设有一张表T,上面有索引k,需要重新建立索引k,有下面两种方法:
## 重新索引k
alter table T drop index k;
alter table T add index(k);
## 重建主键索引
alter table T drop primary key;
alter table T add primary key(id);
上面的 重建主键的过程不合理
。不论是删除主键还是创建主键,都会将整个表重建。所以连着执行这两个语句的话,第一个语句就白做了。这两个语句,可以用这个语句代替 : alter table T engine=InnoDB;