我有一個mysql數據庫,其中有一個超過600萬行且沒有索引的特定表。一個簡單的查詢,如SELECT ... FROM log ORDER BY log_date ASC
將花費不可接受的時間。我顯然需要在表格中添加索引,但我不確定這是最有效的方法。將索引添加到大型mysql表的最有效方法
1)我的第一個選擇是發佈ALTER TABLE log ADD INDEX log_date
,但我不確定需要多長時間......是否需要與上一個查詢大致相同的時間長度?如果是這樣,這是不可接受的。
2)我的第二個選擇是導出表,TRUNCATE
表,發出ALTER TABLE
語句,然後重新導入表數據。我不確定需要多長時間才能重新導入數據,並且擔心繫統在過程中如何嘗試向表中寫入行時會發生什麼情況。
是否有人能夠提供深入瞭解生產系統中中等大型表格而不會導致太多悲傷的最佳方法?
謝謝,Hammerite。 – Timothy 2010-09-10 17:29:37