回答
是的,這是很好的做法,關閉使用後,它會從數據庫.perfomance負擔將提高連接。 應該在使用後始終釋放資源,以便其他用戶可以使用它們。
通常不需要使用mysql_close(),因爲非持久性的打開鏈接會在腳本執行結束時自動關閉,但是在不再需要它們時立即終止資源始終是一種好的做法。如果您的腳本長時間持續運行,您不再需要將資源耗盡更近。
PHP將在腳本末尾釋放任何資源。
例如,因爲您的腳本可能運行1s格式,但您可能只需要在腳本開始處的幾個ms文件就可以釋放文件資源並鎖定文件。
使用相同的推理,如果你在開始幾ms使用SQL,那麼只能對提取的數據進行處理 - 通過關閉你的連接,你允許另一個連接佔據你的位置(有多少MySQL有限制可以同時建立連接)。
如果另一方面在腳本的末尾釋放它,因爲在腳本的整個執行過程中使用數據庫(間歇性),那麼您只是在腳本的末尾執行PHP會執行的操作。
如果您的意思是使用持久連接:通常(99.99%的時間),使用持久連接不是(!)非常明智。當然不是在使用交易時。每個請求的開放和關閉連接的性能損失並不大。
PHP持久連接是不好的,因爲......
- 它們會導致交易,表鎖,臨時表,會話變量和MySQL的大多數其他有用的功能是非常危險的,可能導致服務器範圍頁面生成期間的死鎖和數據庫錯誤。
- 它們佔用數百個MySQL套接字和線程,增加了在某處出現限制(打開文件,mysql設置,內核限制?)的風險。
- 當某些事情因爲持續連接而中斷時,肯定會非常難以診斷,因爲它只會在某個線程以特定順序提供特定請求後纔會顯示。
- 帶有一個Web服務器池,一個慢速Web服務器可以備份並消耗太多的連接,它不能使用,其他服務器無法創建連接來完成請求。
例如參見這篇文章。
http://meta.wikimedia.org/wiki/Why_persistent_connections_are_bad
一般來說它也是良好的編程習慣明確地釋放你儘快掌握,因爲它們可以再由競爭程序的腳本中使用的所有資源。使用構造函數和析構函數('智能資源')是一個很好的方法。在PHP中,您的腳本可能以致命錯誤結束,在這種情況下,您無法自己釋放它們。
在腳本結束之前調用析構函數(我不記得是否在註冊關閉函數之前或之後)。因此,在對象超出範圍之後不會立即調用它們,因此它們的用處非常有限。 – 2012-08-04 14:48:15
同意。 PHP不是C++或Java。 – 2012-08-06 10:33:59
- 1. PHP中的MySQL:腳本結束時關閉連接?
- 2. PHP MYSQL:如何保持變量活着,直到連接結束
- 3. MySQL的左連接的空值,以結束
- 4. 連接到Web服務以SocketTimeoutException結束
- 5. Mongodb連接不斷結束
- 6. 連接和會話結束
- 7. MongoDB erlang連接結束
- 8. php-mysql連接
- 9. PHP MySQL連接
- 10. PHP/MySQL連接
- 11. MySQL連接限制和PHP MySQL連接
- 12. mysql以狀態1結束?
- 13. 連接MySql結果
- 14. PHP -MySQL:無連接可以作出
- 15. PHP連接到MySQL
- 16. PHP和mysql連接
- 17. PHP/MySQL的連接
- 18. 連接Android PHP/MySQL
- 19. 連接php到mysql
- 20. 奇怪的是,我的SQLAlchemy MySQL連接總是以睡眠結束?
- 21. 可以多次連接db連接嗎? PHP - MySQL的
- 22. MySQL連接器網6.9.9安裝嚮導過早結束
- 23. MySQL如何知道連接何時「結束」?
- 24. 在nodejs上結束mysql池連接的位置?
- 25. 將android連接到mysql數據庫...應用程序結束
- 26. 怎麼知道當MySQL INSERT結束(多重連接)
- 27. 線程在C++ MySQL連接代碼不結束
- 28. PHP和.NET連接器連接在MySQL
- 29. Php - 將連接池連接到Mysql
- 30. 結束與MySQL
重複的http://stackoverflow.com/questions/2065282/using-mysql-close – Hawili 2012-08-04 12:01:21