2009-11-23 107 views
0

首先,我是一名自學者,所以我沒有很好的瞭解優化和東西。我創建了一個社交網站。需要關於優化的幫助

它現在包含29個表格。我想通過添加諸如黃頁,事件等來擴展其功能,使其更像門戶網站。

現在的問題是我應該簡單地在同一個數據庫中添加表還是應該使用不同的數據庫?

而且,如果我創建一個新的數據庫,我還希望用戶能夠評論商業清單等評論。因此,我將如何能夠取消條目,因爲評論將在一個數據庫和其他用戶的詳細信息。

是否可以在兩個不同的數據庫上連接表?

+0

你真的需要優化嗎? 29張桌子聽起來不像是一個巨大的數額。這些表有多大,你有多少個併發用戶? – 2009-11-23 13:04:43

+0

這就是我不知道如果應該在同一個數據庫中完成或不。目前只有2MB的數據庫。但由於它是一個社交網站,我想從開始本身進行優化。一直有大約20個併發用戶,預計它會在兩個月內達到1000個左右。所以請回答基於1000.謝謝 – 2009-11-23 13:07:16

+0

我目前正在開發一個項目,其中每個表格的容量均超過120GB - 我認爲您不會遇到任何技術限制。 – nickf 2009-11-23 13:12:20

回答

2

您可以通過完全驗證名稱來將數據表連接到單獨的數據庫中,但真正的問題是您爲什麼要將信息放在單獨的數據庫中?如果所存儲的信息全部關聯在一起,則應該將其存儲在一個數據庫中,除非有令人信服的(通常與性能相關的)原因。

我看到將你的YellowPages分開的主要原因是你希望有一個YellowPages可以訪問幾個不同的非互動網站。也就是說,你可能不想在列表中發表相關評論,因此評論需要存儲在網站數據庫中,而不是YellowPages數據庫中。這聽起來像是一場維護噩夢。

2

不要優化,直到你需要。

如果性能沒問題,去最容易維護解決方案。

監控您的網站的性能,如果它開始變慢,請確切指出是什麼導致放緩並只關注該部分的性能。

1

您絕對可以查詢並連接來自兩個不同數據庫的表格 - 您只需要以dbname.tablename格式指定表格即可。

SELECT a.username, b.post_title 
FROM dbOne.users a INNER JOIN dbTwo.posts b USING (user_id) 

但是,它可能會使管理和維護對您來說變得更加複雜。例如,您必須跟蹤哪個表屬於哪個數據庫,並且將不斷需要將數據庫名稱添加到所有查詢中。當需要備份數據時,您的工作也會隨之增加。 MySQL數據庫可以很容易地包含數百個表格,所以我看不出分割它的好處 - 只需堅持一個。

1

你可以證明算法是最快的。 math.h和C庫自從半個世紀以來非常優化,其他優化方面的其他進展也是perl結構。請避免將所有內容放在線上,以便調試。有約定,儘量讓團隊中的每個程序員遵循相同的約定。哪一個慣例是「正確的」比最終的和一致的最優化要少。性能是你做的最後一件事,安全性和可理解性是最重要的。閱讀有關ordo符號的信息僅取決於軟件,而次優軟件可能比相對不同硬件的最佳軟件更快。沒有結構的完全buginfested意大利麪代碼可以比最成熟的最佳軟件相關硬件響應快許多倍。