為什么需要重建索引?
索引可能因為刪除,或者頁分裂等原因,導致數據頁有空洞,重建索引的過程會創建一個新的索引,把數據按順序插入,這樣頁面的利用率高,也就是索引更緊湊、更省空間。
假設有一張表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;