2012-05-15 35 views
0

我有一個(項目[編號,名稱,顏色,大小等])表超過6000.我認爲最多可以達到10000。 在該表中基本上是關於物品的信息。我也有5個不變倉庫的桌子和0到7個臨時倉庫的桌子。 這些表是這樣的(id,item_id,數量)。我試圖通過將這些倉庫組合在一個表中(id,item_id,quantity,storehouse_id)來規範化該數據庫。當使用自連接從所有庫中搜索多個項目時,這會使搜索速度非常慢6-10秒。然後我決定將這些項目與新創建的數據庫(id,名稱,顏色,大小等,storehouse1_quantity,storehouse2_quantity等)結合起來。這使得任何請求的查詢都小於0.1s。但是現在數據庫非常規範化。由於倉庫不超過2000件,大多數少於500件。 如果沒有更好的方法,我可以忍受。我不知道在哪裏看數據庫更多的邏輯和更容易維護。 任何幫助表示讚賞!提前致謝!Mysql大桌子vs加入

回答

1

那麼,規範化的方法是「正確」的方式,因爲數據庫引擎是爲了解決這個問題而開發的,我會開始考慮你的索引安排是什麼。如果有很多查找/連接,通常應該有一個索引,這樣MySQL就不必通過所有文本。

+0

表中的每個字段都可以通過索引進行搜索。它只是讓搜索在表格中循環多次,因爲有多個倉庫,並且多次將它們加入到項目表中 – Hander

+0

我只能建議看看你如何存儲這些數據......如果這很難得到,也許是爲了某個總結信息的設計調整。 – GDP