2013-05-22 233 views
1

我需要連接到外部MySQL數據庫並獲取一些數據。我有一些關於它的問題:遠程MySQL服務器連接w/PHP

  1. 連接到遠程服務器將增加頁面的加載時間,我希望儘可能最低。
  2. 我需要加載的數據是額外的,如果遠程服務器出現故障,我不想等待額外的時間(直到超時)。

使用PHP連接到遠程MySQL數據庫的最佳實踐是什麼?基本上,我希望我的網站加載時間受到儘可能最小的影響。

如果不能用PHP完成,我可以採用不同的方法。

+0

定義「外部」?這臺服務器有多遠? – tadman

+0

兩個不同的服務器,兩個不同的託管公司。無論在美國,但它可能會改變。 – Gotenks

+0

這是一個大國。紐約到加利福尼亞可能引入嚴重的延遲。 – tadman

回答

1

如果可能的話,爲可以本地訪問數據庫的一端和遠程的API使用者構建一個API。然後,您可以在API獲取調用中設置暫停。在數據庫中編寫簡單的JSON類型封裝通常不是那麼困難。

替代品很混亂,例如VPN,SSH橋或使用SSL/TLS進行加密的MySQL端口的遠程訪問。數據庫驅動程序會遇到不可靠的連接或數據包丟失時的問題。表現最多也不穩定。

+0

我已經考慮過這個解決方案。在服務器A上,我將創建一個JSONP API,它將由服務器B通過jQuery的$ .getJSON調用。如果沒有更好的答案,我會選擇你的接受,謝謝! – Gotenks

+0

我發現這種方法是最可靠的,因爲每個API調用都是一個獨立的請求。如果失敗了,這沒什麼大不了的。另一方面,維護持久的數據庫連接可能會造成麻煩,如果出現故障,它會在您的應用程序中產生各種錯誤。 – tadman

0

您可以嘗試MYSQLI_OPT_CONNECT_TIMEOUT選項mysqli_real_connect。它雖然有一些怪癖,檢查this了。

也就是說,我同意@tadman,構建服務器API可能是最好的選擇。對無法訪問的遠程服務器進行同步調用會導致您的服務無法用於所有實際目的。