2013-06-20 56 views
3

我有一個相對較大的InnoDB表(~20m行),我想將索引添加到列中。MySQL在相對較大的表上添加索引(InnoDB)

該表正在讀取和寫入頻繁,所以我希望該表在索引被添加時仍然可用。

我該如何做到這一點?

我目前看到兩個選項:

  • 只是一味的添加索引和祈禱什麼都不會發生
  • 與結構+索引創建一個副本表,從原來的表中添加數據,然後重命名原件的複製品並丟棄原件。

有沒有更好的方法?

謝謝:)

MySQL版本:5.0.51

+0

我認爲第二種選擇會好得多,因爲您將擁有大量數據的備份。 – Pawan

+0

頻繁寫入第二種方法是probabky導致一些併發問題。跨越你的手指,只需添加索引 – Orangepill

+0

,然後再添加可能需要在另一臺機器上的副本上測試的索引,然後根據這裏的評論http://dev.mysql.com/doc/refman/5.0/en/create-index .html – Orangepill

回答

2

第二選擇將是巨大的,但你怎麼能做到這一點?我推薦MySQL Workbench