2012-02-15 30 views
-3

當從數據庫中檢索數據是更有效的服務器資源總是從數據庫中加載數據或將數據寫入文件並使用php include語句加載它?或者有沒有比這兩者更好的選擇?什麼是更有效的MySQL或包含文件

此外,當從單個表格查詢MySQL數據庫中的多個特定記錄(即ID:1,52,24,24)時,將查詢組合成一個查詢或將它們分成每個記錄一個查詢會更有效?

+10

多少數據? ...雖然最好的答案是:嘗試並分析它。像這樣的東西可能會有很大的不同,這取決於你的設置。 – 2012-02-15 17:19:39

+1

這個問題是WAAAAAY超出此問答網站的範圍。有超過9000個事情可能會影響您的配置。就像Pekka在這裏所說的那樣,嘗試一下並分析它。 – 2012-02-15 17:22:18

+1

通常文件系統比DBMS更有效率。但嘗試它和配置文件。你會發現很多關於如何在PHP中進行代碼分析的教程。關於第二個問題,當然最好使用,例如'WHERE id IN(1,5,27,24)',而不是使用'WHERE id = N'運行四個查詢。 – 2012-02-15 17:24:57

回答

1

當從數據庫中檢索數據時,服務器資源上的數據總是從數據庫加載數據或將數據寫入文件並使用php include語句加載它,或者有沒有比這兩者更好的選擇?

那麼,這取決於很多事情。通常的做法是首先用數據庫來處理,如果網站變慢,從緩存開始(實際上是將數據寫入其他地方,然後從那裏檢索數據,但它最初仍然在數據庫中進行管理)。對於您的網站輸出的HTML,您也可以緩存該服務器端的相同作品。

所有具有高流量的站點都使用某種數據庫和HTML緩存。

而且,當從單個表格查詢MySQL數據庫中的多個特定記錄(即ID:1,52,24,24)時,將查詢組合成一個查詢或將它們分隔成一個查詢會更有效每個記錄?

通常情況下,您使用一個查詢和IN()函數來做到這一點,例如, ... WHERE id IN(1, 5, 27, 24),因爲數據庫服務器在一個查詢而不是多個查詢中執行此操作更容易。

0

通常,假設一個簡單的查詢,查詢並返回所有需要的行與將它們分隔成單獨的查詢將會更高效。在編譯每個查詢的查詢和IO開銷方面存在開銷。

但是,選擇「最高效」方法有幾個明顯的例外。

用戶是否可能取消中間的大型任務?如果是這樣,許多較小的查詢將允許用戶部分中止任務,從而使服務器免於額外的工作。

可擴展性和用戶友好性有時與效率不一致。如果許多用戶必須共享資源,則如果一次返回一小部分結果,用戶可能會遇到更多的響應,並且比等待所有結果更快。

相關問題