我正在Windows服務器上使用JavaScript,MySQL和PHP進行RIA。關於用大量數據構建數據庫的建議
我有5000個相同結構的數據集,我想放在數據庫中。 5張表對於數據來說已經足夠了,除了一張表格以外,所有這些數據都是相當小的,對於一個典型的數據集,這個表格將會有300,000多條記錄。
另外,500位用戶將只能讀取從這些數據集編譯的統計信息。這些統計數據由PHP提供(不允許直接訪問)。而且,他們對數據的訪問也不盡相同。一些用戶只能使用一個數據集,其他一些只能使用一個數據集。
用戶看到的結果相對較小;大多數請求會返回100行以下,最大的請求將大約700行。所有請求都是通過一個JavaScript RIA,它使用Ajax連接到PHP,後者又連接到數據,完成它的任務並輸出JSON作爲響應,然後JavaScript將相應地顯示。
在思考如何構建這樣,三個選項出現了:
把數據集相同的表所示。這可以很容易地在最大的桌子上給我15億條記錄。
爲每個數據集使用不同的表格。這將限制最大的表格大小,但可能意味着25,000個表格。
忘記數據庫並堅持專有格式。
我傾向於#2的幾個原因。
我很關心使用非常大的表格(例如:查詢速度,實施限制等)的問題。
單獨的桌子看起來更安全;它們限制了錯誤和結構變化的影響。
單獨的表格允許我使用MySQL的表級安全性,而不是實現我自己的行級安全性。這意味着更少的工作和更好的保護;例如,如果在沒有行級別安全性的情況下意外發送查詢,則用戶可能會收到未經授權的數據。與表級安全性不同,因爲數據庫將會無效地拒絕查詢。
這些是我的想法,但我想你的。你認爲這是正確的選擇嗎?如果不是,爲什麼不呢?我錯過了什麼考慮?我應該考慮其他平臺,如果可擴展性是一個問題?
mysql確實支持分區:http://dev.mysql.com/doc/refman/5.1/en/partitioning.html –
謝謝。我正在研究這個。分區級別的安全性(如果可能的話)會搖擺:D – RonaldBarzell