Mysql 学习(三)MySQL重新建立主键索引和非主键索引的方法

MySQL重新建立主键索引和非主键索引的方法

索引可能因为删除,或者页分裂等原因,导致数据页有空洞,重建索引的过程会创建一个新的索引,把数据按顺序插入,这样页面的利用率最高,也就是索引更紧凑、更省空间。

重新建立主键索引方法

这是错误的写法
alter table A drop primary key;
alter table A add primary key(id);

mysql官方文档写了三种措施:

  1. 整个数据库迁移,先dump出来再重建表(这个一般只适合离线的业务来做);
  2. 用空的alter操作,比如ALTER TABLE t1 ENGINE = InnoDB;这样子就会原地重建表结构;
  3. 用repaire table,不过这个是由存储引擎决定支不支持的(innodb就不行)

重新建立非主键索引的方法

alter table A drop index a;
alter table A add index(a);

你可能感兴趣的:(mysql)