這些桌子將不斷插入新的行或更新。不斷插入和更新。有一張巨大的桌子還是兩張較小的桌子是更好的
我有一個大表含,視頻網址,標題,描述,標籤,意見,評價,評論
要我把這個給2個小表
ID視頻網址,標題,描述
並將其鏈接到上面。
ID VIDEO_ID,標籤,意見,評價,評論
這些桌子將不斷插入新的行或更新。不斷插入和更新。有一張巨大的桌子還是兩張較小的桌子是更好的
我有一個大表含,視頻網址,標題,描述,標籤,意見,評價,評論
要我把這個給2個小表
ID視頻網址,標題,描述
並將其鏈接到上面。
ID VIDEO_ID,標籤,意見,評價,評論
這聽起來並不像你的表是非常normalized。您希望避免存儲重複數據,除非它具有某些性能優勢。重複的信息會導致更大的記錄和索引大小,這可能會增加磁盤尋道時間。
如果您列出的列是作爲不言自明的,因爲他們的聲音,那麼我將它分成三個表:
videoId,url,title,description,rating,views
videoId,tag
videoId,comment
這將允許您爲每個視頻創建一個條目,僅存儲一次主要信息。然後,您可以將視頻與多個標籤和多個評論相關聯。
規範化,標準化,規範化。如果可能,請將ID保留爲整數。 +1 – 2010-01-22 02:54:23
也許甚至是一個Video_Tag_Video表,它將視頻與標記相交。這樣你有一次存儲標籤名稱。 +1進行標準化。 – 2010-01-22 02:58:28
@Coov - 是的,我認爲這將是一條路。我想讓我的答案簡單明瞭,而且很難知道海報想要他的標籤有多完整,但是如果它將成爲整個網站的事情,那麼單獨的「標籤」表格就會比較謹慎。 – zombat 2010-01-22 03:11:47
你所描述的內容叫做「垂直分區」。它是否有益取決於您是否將可變大小的列隔離到一個表中。您還可以水平分區表。閱讀Improving Database Performance with Partitioning瞭解哪些(如果有的話)分區類型有幫助的更多信息。
正如其他人注意的,首先規格化數據,那麼只有非規範化如果你沒有得到你所需要的性能。
數據集變得越大,越慢讀,寫和更新將要在一個表。您可以通過將其分解爲看起來合乎邏輯的多個子集來最小化這一點。看看WordPress如何存儲它的標籤和評論。
LOL ....實際上這就是我所描述的... wordpress商店標籤和評論分開的帖子表... – bohohasdhfasdf 2010-01-22 05:03:48
評論聽起來像它應該是在它自己的表 – alex 2010-01-22 02:44:24