2011-08-05 55 views
6

我有一個龐大的數據集。結構看起來是這樣的:是MySQL中的多字段索引不錯的選擇?

K_Field1, K_Field2, K_Field3, K_Field4, D_Field5, D_Field6, D_Field7, D_field8 

的問題是,只有第4場(K_Field1,K_Field2,K_Field3,K_Field4)一起標識行唯一。我創建了一個表格,使用這些字段作爲其字段。

假設我在表中有100萬行使用該結構。如果我導入新記錄,則必須確定它是否已存在於數據庫中。如果是,那麼我必須更新它,如果沒有,那麼我需要插入一個新行。

爲此,我需要在前4列上放置一個多字段索引,這恐怕不是最好的解決方案。是否有更好的數據庫結構來存儲和搜索數據,或者我必須與四分位索引一起生活?

我使用MySQL

+2

爲什麼你認爲有多列索引是一個壞主意?它是完全理智的,也是你唯一的解決方案。 – nobody

+0

我希望能夠以多種方式將數據拆分成多個表格,使結構更有效率,但似乎我錯了。感謝您的評論! – mimrock

回答

5

這沒有什麼錯的前4列創建索引的,其實你應該:

create unique index mytable_key on mytable(K_Field1,K_Field2,K_Field3,K_Field4); 

,因爲這是你的現實情況。

這也是「正確的」解決方案。