2012-04-11 12 views
0

如果我有一個頁面,其內容是從MySQL數據庫生成的(簡單查詢以顯示單元格內容,HTML內容),那麼有多少用戶可以點擊該頁面一次沒有崩潰的數據庫?MySQL併發連接 - 從數據庫加載文本

我必須在多個域中顯示相同的數據,所以我不會在三個域中複製頁面,而是將它加載到mysql中並使用此路徑來顯示它。但是,我想知道可以處理多少個併發連接而不會導致數據庫崩潰。

任何人都可以在正確的方向指出我的發現嗎?我假設這個小的查詢不應該是一個巨大的負載,但是如果有10,000個訪問者一次點擊它,那麼是什麼?

+0

這取決於您的服務器的硬件和軟件/操作系統。如果您認爲您的服務器無法處理它,請查看大型網站等多臺服務器的負載平衡。還要考慮緩存數據庫輸出,以確保更少的數據庫調用。 – 2012-04-11 15:45:54

+0

還要記住,MySQL使用自己的查詢緩存,所以如果您啓動了相同的查詢10000次,MySQL通常不會重新計算結果,除非您正在查詢的表發生變化。相反,MySQL將從其查詢緩存中回答查詢。這可以極大地提高性能:http://dev.mysql.com/doc/refman/5.1/en/query-cache.html 但是,對於更多的靜態數據和更大的查詢,只需要生成表格就可以了一次,將HTML存儲在某個地方,並簡單地發送該用戶的方式。更新了你的桌子?然後你更新HTML :) – Daan 2012-04-11 19:17:44

回答

0

您需要檢查UR設置爲max_connections的,你可以通過查看以下鏈接獲得有關它的更多信息:http://www.electrictoolbox.com/update-max-connections-mysql/

你使用任何框架?如果這樣的話,大多數緩存都內置在這些緩存中,這應該可以解決這個問題,假設信息沒有被瞬時更新。即使是這樣,嘗試緩存頁面中您認爲不會經常更改的任何部分。

0

有多少用戶可以一次打那個頁面而不會崩潰數據庫?

所有這些。

這是一個壞問題。

數據庫不應該因爲用戶試圖連接而崩潰。有多少php客戶端可以打開到數據庫的併發連接有很多限制。真的,您應該正確配置DBMS,以便它能夠適度地處理這種情況 - 即max_connections應該限制客戶端的數量 - 而不是DBMS可用的內存量。

如果您的意思是您可以支持多少個併發連接而沒有連接被拒絕/排隊,那是非常不同的。這幾乎是一個明智的問題。

在這種情況下,它將取決於您獲得的內存量,您如何配置DBMS,CPU速度,內容大小,內容項數量, PHP連接到數據庫管理系統,PHP距離DBMS有多遠......

在數據庫管理系統上觸發它們之前,您更有可能遇到網絡服務器上的連接限制 - 但建立這兩個限制對於兩者來說都是相同的 - 生成可控數量的連接並測量其使用的內存數量 - 重複使用不同的數量,獲得大量數據。繪製一個圖形,查看線條跨越資源限制的位置。的

等等,而不是重複三個域的頁面,我將其加載到MySQL

域的數量是相當多的不相關的 - 除非你ecxplicitly尋找的方法避免ESI。

但如果萬人次

真的嗎?在一個典型的網站上,這可能意味着100萬個併發HTTP會話。