2013-04-01 53 views
0

我必須決定是否應該更改我的虛擬主機,因爲我的當前主機不支持mysqli。目前,我通過保存數據文件並使用來執行數據操作。我正在考慮使用連接池在mysql中保存數據。除了安全性(坦率地說沒有太多關注),數據搜索在mysql中更加容易。然而,用戶將每隔幾秒訪問mysql DB,因此連接池是必須的,處理時間也是如此。哪個更快在php/mysql?文件操作或連接池

我已經計算出,如果沒有連接池,與文件操作在MySQL中處理時間較慢多次。我想知道連接池和文件操作之間的延遲差異,以及連接池是否比通過php進行文件操作快得多。

而且會是什麼,如果我選擇了連接池的主機服務器上的處理負荷的差別。

在此先感謝。

回答

0

PHP腳本執行的每一個用戶從Web服務器請求的特定資源,然後終止時間。因此腳本無法共享資源,因此PHP中沒有連接池;腳本到達EOF後,apache將釋放所有資源。

編輯,爲您的實際問題,這是非常不可能給出一個籠統的回答到這是更快,這取決於太多的參數,如類型的磁盤,網絡連接,服務器和之間的跳躍數據庫等。您需要對不同的方法進行基準測試,並將結果與​​對方進行比較,以獲得針對您特定設置的明確答案。

搜索類似的主題,我發現這一點,它提供了有關PHP連接池(Connection pooling in PHP)的信息。

+0

但我認爲這就是mysqli被引入的原因,爲了取代pconnect ...,以便連接不會死亡,並且可以在腳本中重複使用它們。 – user1517108

+0

但有一個隱含的假設,即所有參數在兩種情況下都是相同的......網絡連接......跳躍......磁盤類型......如果每個參數相似,則哪個參數更快。 – user1517108

+1

當寫**新記錄時,真的不可能說哪一個更快。在查找數據時,MySQL應該更快*假設數據中沒有特定的結構,可以實現從文件中讀取數據的特定優化。 –

2

在一個大的文件可能會更慢,比MySQL更無需繁瑣的連接池查詢&操縱數據。還有文件鎖定,併發問題你必須處理。

反正儘量不要做任何過早的優化。使用適當的數據庫,然後從那裏收集性能統計信息。只有在必要時才進行優化。

0

恐怕你的假設都是錯的。

首先,將文件與數據庫進行比較。有沒有這樣的問題。世界上所有的網絡程序員已經使用各種數據庫,連接池或不連接。從幾MB的數據大小開始,數據庫是只有解決方案。

二,關於連接池。至少有90%的網站在沒有任何連接池的情況下開心地工作,每秒鐘甚至可以保持幾十個請求。

我不知道你是從哪裏得到你的數字進行計算的,但是恐怕這個來源是相當不可靠的。更好地使用數據庫啓動您的站點,並且無需連接池。解決所有您將面臨的衆多問題,將您的網站發展到一百個在線用戶,然後開始考慮連接池。順便說一句,如果你當前的主機確實支持PDO,你甚至不需要移動。由於PDO似乎只有現在只有可靠的MySQL驅動程序。但是,甚至不爲mysqli開始 - 這是完全無法使用的。