2010-06-08 83 views

回答

3

如果不調用它,那麼在等待狀態下,與數據庫的套接字連接將保持打開約30秒。

如果你得到很多很多人,並且你不能以某種方式重新使用這些殭屍連接,那麼你的數據庫可能會爆炸,導致用戶錯誤太多。

因此,在回答你的問題:語法不要求,但它是非常差的做法不包括他們。

+0

在nico的回答中查看我的留言。 – Artefacto 2010-06-08 12:20:52

+0

你確定數據庫會爆炸嗎?我希望應用程序不能建立新的連接,但數據庫可以在所有打開的連接通過〜30秒後保持運行並可用。 – Unreason 2010-06-09 10:00:38

+0

@不理由:這很可能,是的。但最終的結果在重負載下是一樣的:網站停機時間。 – Oli 2010-06-09 12:30:10

1

您不明確釋放資源,但依靠服務器端的超時和應用程序端的內部管理。

1

PHP將在執行結束時關閉任何打開的連接。所以,如果你不這樣做,什麼都不會發生。

http://www.php.net/manual/en/function.mysql-close.php

使用mysql_close()通常是不必要的,因爲非持久打開鏈接在腳本執行結束時自動關閉。

+0

這取決於PHP的垃圾收集器檢測到一個可用的資源和整理。你不能保證什麼時候清理會發生,而且我已經看到系統花費太長時間。爲了平衡,我也看到系統發生在哪裏 - 執行結束的瞬間......但爲什麼要冒這個風險? – Oli 2010-06-08 11:58:14

+0

@Oli它沒有。除非您使用持續連接,否則請求關閉時連接將消失。例如,如果引用連接的所有變量未設置或超出範圍,它甚至可能會更早。 5.3中引入的垃圾收集器的目的是清理具有循環引用的資源。如果您看到不同的行爲,請提交錯誤報告。 – Artefacto 2010-06-08 12:19:28

4

爲什麼不在PHP參考手冊中閱讀它?所有的信息是有...

但簡而言之:不,他們是沒有必要的,但恕我直言,最好給自己接近自由的連接當你不再需要它們時,資源將盡快消失。

+0

+1不需要,但一個好主意,如果腳本運行時間更長/儘快釋放資源。 – Wrikken 2010-06-08 14:05:33