2009-09-09 58 views

回答

7

只打開一次連接。打開和關閉連接也需要時間。正如你已經說過的,PHP closes open connections at the end of the runtime automatically

所以,只要你需要一個連接就打電話給mysql_connect,讓PHP在最後關閉它。 mysql_connect檢查已經存在的連接,所以你不必擔心用相同的參數調用mysql_connect會每次都打開一個新的連接。您還可以使用persistent connections,這些腳本不僅可以用於一個腳本執行。

0

使用持久連接或連接池可能會更好。

0

通常情況下,您最好關閉打開的連接,隨着時間的推移整理。

無論你想打開和關閉每個查詢將取決於你的應用程序真的。如果它只與數據庫很少交互,那麼最好這樣做。或者您可能想要打開一個連接池供所有人使用,只有當所有其他人正在使用時纔打開一個連接。

1

從我有經驗,最好離開連接打開。但這取決於您的應用程序的行爲。如果您正在進行大量的計算或連接外部服務,可能需要一些時間才能完成,那麼最好關閉連接並在完成耗時部分後再打開它。如果你沒有大量的訪問者,你可以達到sql連接數的限制,那麼請保持連接一直打開。需要一些時間才能再次打開它。

0

在腳本初始化期間連接到您的數據庫一次;在腳本執行期間保持連接處於打開狀態,並通過它發送進一步的查詢。

上面是一個典型的使用場景,其中您有一個執行多個SQL查詢的運行時間較短的PHP腳本(可能位於Web服務器上)。除非腳本運行時間超過幾個小時,否則不要擔心關閉查詢之間的連接。

每次連接到SQL服務器時,PHP腳本和服務器都需要經過(相對)複雜的協商:通過網絡建立連接,檢查雙方是否要說MySQL,檢查腳本有權連接,等等。保持數據庫連接,速度更快,效率更高。

5

這並不重要。如果您的PHP腳本將在腳本結尾爲您關閉連接,那麼您自己做這件事並不是很重要。

在完成所有查詢後,如果您想釋放一點內存(例如,如果您希望在腳本中放入額外的代碼以關閉連接),那麼唯一的原因是,你的腳本已經使用像GD2這樣的庫存了。

每次查詢後關閉連接,並打開另一個查詢,IS內存餓了,並且浪費大量時間。總而言之,不要打擾!

2

如果您的腳本隨機使用連接,讓連接打開。 如果有一組作業正在使用具有特定時間間隔的連接,則可以在每個組作業之後關閉連接。