我遇到了MySQL查詢的問題,希望有人能提供一些幫助/建議。MySQL連接限制建議
我正在開發一個基於PHP的系統,它在一個頁面(tab1 = profile,tab2 = address,tab3 = payments等)的不同選項卡上組合了相當多的數據,因此一頁可以有多達34/40個MySQL查詢從不同的表格或不同的標準中提取。
頁面加載速度變得非常慢,我問我的網絡主機是否知道什麼是錯誤的,他們建議這是因爲MySQL查詢速度慢(一些超過2秒)。他們還說我的MySQL用戶一次只允許15個連接。
如果我的頁面有40個查詢,一次只允許15個連接,這是否意味着他們有效排隊並等待一個完成?如果是這樣的話,那麼我可以理解爲什麼頁面需要一段時間才能加載,但我不確定解決方案。是15個MySQL查詢考慮了很多還是這是我的主機(HostMonster)嚴格的限制?
此外,如果有15個用戶同時訪問系統,這15個連接是否會在每個連接之間進行拆分,或者每個用戶登錄到該網站時是15個連接?我假設他們是指每個數據庫用戶,但所有訪問系統的人都將使用相同的數據庫用戶,因此似乎不可能創建一個系統,其中幾個用戶可以在一個系統中訪問?
整個連接的事情讓我困惑了一下。
在此先感謝您的幫助!
如果一個PHP頁面包含40個查詢,這些查詢將連續執行,即只有當前一個查詢返回時纔會發出下一個查詢。 15個連接意味着15個帶查詢的頁面請求可以在理論上同時執行。只要PHP處理完頁面請求,它就會釋放它的連接,因此它可以免費下一頁請求。 我認爲,對於少數用戶來說,15個連接對於一個小型Web應用程序來說已經足夠了,但對於數百到數千用戶的中型到大型應用程序顯然還不夠。 – Marcellus
看看你是否可以用'JOIN','GROUP BY'和子選擇做一些查詢優化。每頁40個查詢是激烈的。另外,請看看將memcached集成到結果集中,這些結果集並不總是唯一的或者可以在用戶之間共享;它將允許您卸載一些數據庫請求。 – msanford