2008-10-15 32 views

回答

8

我不能說MySQL/PostgreSQL的問題,因爲我對Postgres的使用經驗有限,但是我的碩士研究項目是關於CherryPy的高性能網站,如果你覺得你會感到失望使用CherryPy爲您的網站。它可以輕鬆擴展到商用硬件上數以千計的同時用戶。

當然,同樣可以說對PHP的,我不知道比較PHP和CherryPy的性能的任何合理基準。但如果您想知道CherryPy是否可以每秒處理大量請求的高流量網站,答案肯定是。

2

需要更多數據。傑夫有幾篇關於同樣問題的文章,答案是要等到你遇到性能問題。

開始 - 誰在主持和他們有什麼可用?你在家裏的人才技能組合是什麼?你打算僱用一家外部公司嗎?他們推薦什麼?全新的項目,一個願意學習新框架的團隊?

第二件事是做一些模型 - 接口如何工作。它需要加載和保存哪些數據?這個想法是保持您的網絡和數據庫之間的流量下降。例如沒有大量查詢的聊天頁面。等

一旦你的數據需求和流量更好的主意 - 然後在數據庫的設計工作。有很多規律可循,但更好的之一,是按照規範化規則(是啊,我是一個分貝傢伙爲什麼?)

現在你有一對夫婦的網頁建設 - 運行測試。你有問題嗎?是的,現在看看它是什麼。頁面服務或數據庫拉?測量然後選擇一個行動的過程。

8

理想的設置將接近this

caching

總之,nginx是一個快速和光網絡服務器/前代理具有獨特的模塊,讓我們直接從memcached的獲取數據RAM存儲,無需點擊磁盤或任何動態Web應用程序。當然,如果請求的URL沒有被緩存(或者它已經過期),請求照常進行到webapp。天才的一部分是,當webapp生成響應時,它的一個副本進入memcached,準備好被重用。

這一切是完全不僅適用於網頁,但AJAX查詢/響應。

在文章中的'back'服務器是http,並且特​​別提到了mongrel。如果後面是FastCGI和其他(更快速的)框架,它會更好;但它並不重要,因爲nginx/memcached團隊吸收了大部分負載。

請注意,如果您的AJAX流量的url方案設計得很好(REST是最好的,恕我直言),您可以將大部分數據庫權利放在memcached中,任何POST(將傳遞給應用程序)都可以搶先更新緩存。

3

關於數據庫問題,我會說PostgreSQL比MySQL更好地擴展並具有更好的數據完整性。對於一個小型網站來說,MySQL可能會更快,但是從我聽說它隨着數據庫規模的增長而顯着減慢。 (注意:我從來沒有使用MySQL來處理大型數據庫,因此您應該對它的可擴展性有第二個意見)但是PostgreSQL絕對可以很好地擴展,並且對於高流量站點來說是一個不錯的選擇。

+0

了投票,謝謝,我想我會用蟒蛇去,PostgreSQL的 – daniels 2008-10-15 16:35:54

2

我會去nginx的+ PHP +了XCache + PostgreSQL的