2012-03-26 63 views
1

我有一張表,其中已經包含了MySQL中的一個索引。我在表中添加了一些行,是否需要以某種方式重新索引表或者MySQL是否會自動爲我執行此操作?在mysql中重新編制索引

回答

2

這將自動完成。這就是爲什麼有時候我們不想創建索引的原因 - 在插入時重建索引的一部分在性能上有小但不是空的開銷。

+2

確切地說,它不重建索引。它只是增加了它(可能需要重建它的一部分)。 – 2012-03-26 04:41:32

+0

@MatthewFlaschen是的,你是絕對正確的!重建整個索引將會消除任何合理的工作。我添加了一個更正 – 2012-03-26 04:47:40

1

如果您在MySQL中定義了一個索引,那麼它將始終反映數據庫的當前狀態,除非您故意禁用索引。一旦索引被重新啓用,索引將被更新。通常,由於性能原因,索引只能在大插入期間禁用。

表中的每個索引都有相關的成本。雖然一個好的索引可以極大地加快檢索時間,但是您定義的每個索引都會減少插入的次數。插入成本隨着數據庫的大小而緩慢增長。這就是爲什麼你應該只定義你絕對需要的索引,如果你要處理大量的數據。

如果您想查看定義了哪些索引,可以使用SHOW CREATE TABLE來查看特定的表。

1

不,你不需要重建索引。
記錄插入將自動影響舊索引..