2011-02-06 69 views
2

我有一個數據庫與客戶端數據,所有客戶端數據存儲在一個表中,並由一個客戶端代碼標準化到另一個表中唯一標識,最終我們將有100多個客戶端全部在同一個表中,每個客戶端的客戶端數據每年將翻一番,每個客戶端每年有1000多行數據。MYSQL建議,表大小

將每個客戶端劃分到自己的表中並且通過表名而不是客戶端代碼來查詢它們有什麼優點和缺點,並且將有100多個表是無法管理的,並且考慮到我們最終會得到多少數據甚至是必要的改變什麼?

+0

幾年後,你是否擔心有幾千條記錄?認真;)你知道像MYSQL數據庫處理數百萬或記錄就好 – Jakub 2011-02-06 04:33:14

回答

1

這是一個奇怪的問題,但我真的不覺得你有什麼擔心,保持你的數據庫正常化(你說你已經這樣做)。

把它全部放在一張表中,它是一個數據庫,讓它成長,不用擔心它會在2-3年後變成10k行。

我已經處理了大型的mysql/mssql安裝,並且它們在具有數百萬條記錄的單個服務器上工作得很好。

所以不,不要將客戶分解成表格,它會產生一個管理惡夢,堅持一個,使其正常化,並保持不變,除非遇到問題。

編輯

你還在擔心,這裏是直接複製從MySQL:

可伸縮性和限制:

支持大型數據庫。我們使用 MySQL服務器和 包含5000萬條記錄的數據庫。我們也知道 的用戶誰使用MySQL服務器 有200,000個表和大約 5,000,000,000行。

支持每個表最多64個索引 (MySQL 4.1.2之前的32個)。每個索引 可以由1至16列或 部分列組成。最大索引 寬度爲1000字節(InnoDB爲767);在MySQL 4.1.2之前的 ,限制是500 字節。對於CHAR,VARCHAR,BLOB或 TEXT列類型,索引可以使用 列的前綴。

http://dev.mysql.com/doc/refman/5.5/en/features.html

+0

(100個客戶端* 1000行)* 1年= 10萬行一年,所以在5年內它將是50萬,這是一個蛋糕走MYSQL? – ambiguousPanda 2011-02-06 04:38:13

0

這真的完全取決於你的數據是如何構成的。如果你的桌上有索引,即使有數百萬行,事情也應該保持相當快。通過客戶端分離表格在語義上不是「正確的」......儘管取決於您要存儲的數據,但將各部分存儲在各種鏈接表中可能會更快。爲了方便查詢,一張桌上塞滿了所有可能的信息可能有點笨拙。無論如何,如果你用幾行樣本數據發佈實際的表格結構,我可以給出更好的答案,但簡短的答案是,只要你正確對待表格(保持它們正常化和乾淨),你應該沒問題。