2010-06-25 118 views
2

我們在我們的mysql數據庫中有50個表。查詢需要時間,因爲許多表格都有超過15K條記錄。mysql索引添加

我知道添加索引會提高查詢性能,我的查詢是,在現有表上添加索引會對現有用戶造成什麼損害?

請分享您的想法。

謝謝。

回答

1

它不會對現有用戶造成任何傷害。雖然像sAc所說的那樣,更新(以及添加和刪除)會比較慢,因爲在執行這些操作時索引必須更新。 注意:向一個巨大的表添加索引可能會導致它在所需時間內無法使用,因此如果您的網站(或應用程序)依賴於數據庫,則在更新期間它將不可用。 (僞代碼):

create table temp like my_table;

更新記錄器登錄臨時;

alter table my_table add index new_index;

insert into my_table select * from temp;

更新記錄器登錄my_table;

下降表溫度

+0

感謝大衛,你的意思是說,如果我們在進行交易時添加索引,表格將不可用? – Sharpeye500 2010-06-25 21:28:11

+0

僅僅爲15k記錄添加一個索引就不會花很長時間,所以我不會太擔心它。這實在是一張非常小的表格:當你有幾百萬條記錄時,開始擔心。只需選擇一個相對安靜的時間來添加新的索引;並且數據庫本身會處理鎖定,所以你並不需要採取任何特殊的預防措施。 – 2010-06-25 22:01:37

+0

@馬克感謝您的信息。 – Sharpeye500 2010-06-25 23:40:37