2015-08-28 48 views
0

有相當多的博客/鏈接阻止持久連接的使用,主要是因爲清理需要在客戶端完成,以及事務/鎖必須正確回滾的情況。但是,這些鏈接是舊的,而不是mysqli PHP界面的上下文。使用PHP mysqli接口使用持久連接安全嗎?

我讀的鏈接:The mysqli Extension and Persistent Connections

它清楚地表明,當一個客戶端意外終止,它做了大部分所需的清理:

  • 回滾活動事務
  • 關閉和刪除臨時表
  • 解鎖表格
  • 重置會話變量
  • 關閉預處理語句(總是與PHP發生)
  • 關閉處理
  • 釋放鎖用GET_LOCK(收購)

現在幾乎做了大部分的清理,包括讀/寫鎖放在桌子上,如果有的話。所以我認爲它應該是安全的。我可以錯了嗎?

另外,它說有一些性能損失的形式需要額外的時間做清理。我想知道毫秒數可能有多少?它可以像100毫秒一樣大嗎?

雖然自動清理功能有優點和缺點。 好處是程序員不再需要擔心添加清理代碼,因爲它會自動調用。但是, 的缺點是代碼可能會慢一點,因爲每次從連接緩衝池返回連接時,執行清理的代碼都需要運行 。

回答

1

我不知道你是否真的認爲你可以信任匿名路人的回答,而不僅僅是官方文檔頁面,這清楚地回答你的問題。

但如果你這樣做 - 是的,你可以相信它應該是安全的。

就性能損失而言,從它被問到的方式來看,我相信你根本不需要持久連接。

+0

那麼清理的時間將超過db連接嗎? – Ouroboros