請問大家資料庫連線都是什麼時候close?

edited 十月 2013 in 進階PHP討論
在一支程式裡面:
1.不會再用到的時候close.
2.每個資料庫動作(insert,update,delete,update)之後就馬上close,下個動作開始之前再connect.
3.根本不直接close, 讓頁面結束的時候自動close.

我一開始是用1, 後來改用2, 但是看PHP的官網文件是說通常用3即可.

到底哪樣比較好?

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=2246

評論

  • 280280
    edited 十一月 2006
    我一開始就都習慣用 3
    不 close 好像也不會怎樣
  • edited 十一月 2006
    我也是習慣用 3
  • edited 一月 2007
    以下是我自己的推測!!

    如果有錯誤請指教!! 感謝!!

    方法2. 對於資料庫的負擔比較小,但是程式執行料率比較慢...
    方式3. 對於程式執行效率比較好,但是對於資料庫負擔比較大...

    個人都是使用方法2...

    這是自己推測的喔!! 可能是錯誤的訊息~~
  • edited 一月 2007
    我應該也是3,重點在我是使用持續連線的方式跟資料庫溝通
  • edited 一月 2007
    現在的系統大多有連線池 (connecting pool) 的機制,有的是由 application 自已維護連線池,有的是由 server 負責。資料庫系統會有一定量的線路處於待命狀況,查詢量少時這些線路隨時可用,查詢量大時就排隊處理,不會等到程式要求時就實際建立或關閉連線。程式中的 open/close 動作可能是假的,而不是真的連線。

    連 PHP 都有藏暗管,例如在一個 php 程式連線 M$ SQL 時 (除非特別指定 new_link 參數),不論你 open 幾個,每一個 resource 都是同一條連線。

    所以基本上用 3 即可。
  • edited 一月 2007
    沒辦法阿,重新connection的時間實在消耗不起,只能持續連線。
    我最近在寫DB Layer的東西,感觸很深~
Sign In or Register to comment.