2012-04-30 197 views
1

我設置了一個MySQL數據庫和我不知道最好的方法來組織它:MySQL數據庫的設計

我建立一個系統(PHP/MySQL的基礎),其中幾百人會正在執行對數據庫的SELECT/UPDATE/SET/DELETE查詢(可能大約50個同時)。我想如果他們都使用相同的數據庫和表格,會有幾千行。我可以將數據分割到多個表中,但是我必須確保它們都是統一的,並且作爲管理員,我將通過cron運行一些SELECT DISTINCT查詢來更新管理界面。

什麼是接近最好的方法?我可以讓每個人共享一個數據庫嗎?一張桌子?有幾千行時會出現問題嗎?我想隨着時間的推移,將會有一個巨大的性能問題。

任何提示或建議,歡迎!

+0

我還需要防止人們看到/編輯其他人的記錄_(行,不是真實的記錄!)_我希望我可以通過預處理語句解決這個問題。這是可行的嗎? – DesignGoggles

+0

如果你可以詳細解釋你想要做什麼,我會試着幫你解決這個問題。通過我的主頁與用戶個人資料聯繫。祝你好運。 – ionFish

+0

基本上發生了什麼是...人們正在他們的網站上更新我的數據庫加載一段代碼。然後代碼片段就會讀取我的數據庫並向網站管理員返回一組數據。這是我能提供的儘可能詳細的信息。 – DesignGoggles

回答

3

的MySQL/PHP可以很容易,只要你的服務器是足夠強大處理這個問題。 MySQL喜歡RAM,並儘可能使用它(在你提供的限度內)。

如果你將有很多併發用戶,那麼我會建議看看使用innodb表而不是MyISAM(默認在MySQL版本< 5.5)。 Innodb在執行INSERT/UPDATE/DELETE等時鎖定單個行,而不像MyISAM那樣鎖定整個表。

我們使用PHP/MySQL和會對我們的網站1000+的用戶在同一時間(我們的主數據庫服務器每秒造成大約4K查詢)。

+0

感謝Innodb提示。我忘記了MyISAM鎖定整個表格。隨着項目規模的擴大,這將成爲一個問題。 在一個表中把一切似乎是要走的路。關於服務器的功能,我在測試過程中幾乎沒有對它的容量造成影響,所以我應該在那裏很好。 問題回答,謝謝! – DesignGoggles