2015-08-19 29 views
1

我想爲大約10000個用戶設計一個內部系統消息!如何在沒有太多時間在mysql的情況下爲很多用戶創建消息系統?

步驟看起來很簡單:

1-創建數據庫表。例如:消息 2-創建用戶表。例如:用戶 3-搜索消息DB並將所有消息返回給用戶。

但你知道所有10000個用戶有一個表訪問消息的時間太多。

我的計劃是爲每個用戶創建一個獨立的表以保留他的消息。 (並非所有用戶都有一張桌子)

但之後,Mybe我在我的DB中有10000個表。這太多了,管理太重了。

有沒有更好的方法來保存消息?

+0

只要寫它(使用「2表」的方法)。添加適當的索引,MySQL(即使在相對平庸的共享系統上)也不會對查詢產生任何問題。 **不要創建每個用戶的表** - SQL多重性跨行更改。創建更多的表將會使查詢變得更加困難(必須更改表,不能交叉查詢),增加SQL資源使用,並且實際上可能妨礙*性能。 SQL/RDBMS負責「如何」,所以你不需要。 – user2864740

+0

(當然,一個*更大規模的系統 - 比如Facebook - 需要很多額外的考慮;但是這個只有數百萬條消息的應用程序 - 可能 - 甚至不會用強大的查詢來強調基本的RDBMS服務器。) – user2864740

+0

The最糟糕的是你可以爲每個用戶創建一個表格。如果你這樣做,請爲我拍打自己,我無法接觸到你。 –

回答

0

首先,10000個用戶並不是那麼多的mysql數據。在我的系統中,我在一個表中擁有超過10,000,000個數據,並且運行良好。

其次,用戶和消息是否應存儲在獨立表中,這取決於查詢。如果您進行了大量加入,我建議您將它們存儲在一張表中,但如果加入操作不是那麼頻繁,則可以將它們分開。

+0

如果您使用「很多」連接,並且速度很慢,我建議在真實服務器上使用真正的RDMBS數據庫。儘管適當的索引可以解決大多數「連接問題」:} – user2864740

+0

@ user2864740 - 什麼是「真正的服務器上真正的RDBMS數據庫」? –

+0

@ N.B。任何推遲成本 - 並建議數據庫結構發生變化的相關「複雜聯接」。 – user2864740

相關問題