2011-09-14 40 views
2

我正在開發一個網站(基於WordPress MU)。在這個網站上,用戶可以創建自己的博客,可以完全自定義自己的博客(改變背景,寫文章...),增加更多的用戶到他們的博客...一張大桌子或許多小桌子

最常見的查詢是獲取一個博客。 2個不同的博客幾乎沒有關係。

的博客的信息可以存儲在數據庫中的2種方式:

  1. 包含所有信息的幾張桌子,每一個博客是由blog_id確定 。
  2. 很多組表。每組表都包含博客的所有信息。更多的博客,創建更多的表格。

我的問題是:

  1. 在性能方面,哪一個更好?
  2. WordPress實際上使用第二種設計。如果博客 的數量非常大(數千),那麼表的數量可以是數千個,其中 數十個 。這是否會導致任何問題?是否有限制 的 MySQL數據庫的表的數量?
+0

這可能會有點啓發你 - http://stackoverflow.com/questions/4419499/mysql-nosql-help-me-to-choose-the-right-one-on-a/4421601#4421601 –

+0

謝謝F00 ,這真的很有幫助。在問這個問題之前,我沒有找到這個。順便問一下,你對我的第二個問題有什麼想法嗎? – Jack

回答

3

對於代碼的可維護性的緣故,我求求你去選擇1

+4

+1:「乞討」在這裏並不太強。 – NotMe

+0

你打賭。 「敦促」,也許?如何「祈禱」? :) –

+0

我在想:「爲了所有聖潔的愛,並且對可憐的人都有同情心,請選擇1」。可能也會工作......;) – NotMe

4

圍棋的選項#1 - 這就是所謂的normalisation

+0

wp_blogs只存儲博客ID,博客URL ...博客的大多數信息存儲在爲該博客創建的表中(例如wp_1_posts,wp_1_users,wp_1_options ...) – Jack

+1

我的錯誤。但你一定要去選擇#1! –

1
  1. 他們都應該真正執行非常相似,給予適當的索引
  2. 管理大量的表會有更多的問題,特別是與架構更改
+0

1.我真的不明白「給定適當的索引」是什麼意思嗎?兩種設計的數據庫索引是否相同(通過MySQL)?我認爲WordPress使用第二種設計是因爲博客幾乎沒有連接,將它們分隔成許多表格可能會使其更快。 2.是的你是對的。我使用phpMyAdmin,當表的數量超過10000時,它無法正常工作。 – Jack

+0

@Jack當表格的設計和索引合理時,表格的大小與檢索速度無關(相同數量)記錄。這就是索引的目的 - 將搜索時間減少到O(log n)操作,與n相比,這種增長速度緩慢。假設表格中有一個關鍵字可以讓索引首先被博客「分割」,那麼檢索應該在很大程度上是等價的。它通常是二進制搜索。 http://en.wikipedia.org/wiki/Twenty_Questions –