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;

posted @ 2020-01-16 21:47  snower1995  阅读(10915)  评论(0编辑  收藏  举报