成品人精品区二区 四虎免费一区二区 欧美在线观看一区 欧美成人在线

1546瀏覽量

mysqli擴(kuò)展和持久化連接

來源: 時間:2016-09-21

mysqli擴(kuò)展的持久化連接在PHP5.3中被引入。支持已經(jīng)存在于PDO MYSQL 和ext/mysql中。持久化連接背后的思想是客戶端進(jìn)程和數(shù)據(jù)庫之間的連接可以通過一個客戶端進(jìn)程來保持重用, 而不是多次的創(chuàng)建和銷毀。這降低了每次需要創(chuàng)建一個新連接的開銷,未使用的連接被緩存起來并且準(zhǔn)備隨時被重用。

不像mysql擴(kuò)展,mysqli沒有提供一個特殊的方法用于打開持久化連接。需要打開一個持久化連接時,你必須在 連接時在主機(jī)名前增加p:。

使用持久化連接的問題在于它們可能在客戶端處于不可預(yù)知的狀態(tài)。比如,一個表鎖可能在客戶端意外終止之前被激活。 一個新的客戶端進(jìn)程重用這個持久化連接就會"按照原樣"得到這個連接。這樣,一個新的客戶端進(jìn)程 為了更好的使用持久化連接,就需要做任何可能的清理工作,這樣就增加了對程序員的負(fù)擔(dān)。

mysqli擴(kuò)展的持久化連接提供了內(nèi)建的清理處理代碼。mysqli 所做的清理工作包括:

  • 回滾活動的事務(wù)

  • 關(guān)閉并且刪除臨時表

  • 對表解鎖、

  • 重置會話變量

  • 關(guān)閉prepared語句(在PHP中經(jīng)常發(fā)生)

  • 關(guān)閉處理程序

  • 釋放通過GET_LOCK()獲得的鎖

這確保了從連接池返回的持久化連接在客戶端進(jìn)程使用它之前處于干凈的狀態(tài)。

mysqli擴(kuò)展通過自動的調(diào)用C-API函數(shù)mysql_change_user() 來完成這個清理工作。

自動清理的特性有優(yōu)點(diǎn)也有缺點(diǎn)。優(yōu)點(diǎn)是程序員不再需要擔(dān)心附加的清理代碼,因為它們會自動調(diào)用。然而缺點(diǎn)就是 代碼可能會潛在的慢一點(diǎn),因為每次從連接池返回一個連接都需要執(zhí)行這些清理代碼。

這個自動清理的代碼可以通過在編譯php時定義MYSQLI_NO_CHANGE_USER_ON_PCONNECT 來關(guān)閉。

聯(lián)系我們

一次需求提交或許正是成就一個出色產(chǎn)品的開始。
歡迎填寫表格或發(fā)送合作郵件至: qczsky@126.com

大理青橙科技

電話:13988578755 13988578755

郵箱:qczsky@126.com

地址:大理市下關(guān)龍都春天10層

如果您無法識別驗證碼,請點(diǎn)圖片更換

密云县| 清涧县| 读书| 呼伦贝尔市| 保山市| 鹤山市| 博兴县| 三明市| 昭苏县| 田林县| 肥西县| 唐山市| 拜城县| 荣昌县| 双辽市| 塔城市| 灌南县| 元谋县| 宣恩县| 竹北市| 安庆市| 河池市| 饶阳县| 神农架林区| 阿拉善右旗| 合山市| 民和| 禹州市| 浪卡子县| 清水河县| 新蔡县| 大渡口区| 葵青区| 东丽区| 赞皇县| 鞍山市| 芜湖市| 汕头市| 灵川县| 嘉鱼县| 松阳县|