国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

php腳本執(zhí)行完就斷開(kāi)MySQL了嗎?
PHP中文網(wǎng)
PHP中文網(wǎng) 2017-05-16 13:06:27
0
5
978

一個(gè)腳本裡面有連接mysql的sql語(yǔ)句,執(zhí)行的時(shí)候mysql伺服器是新開(kāi)一個(gè)線程(還是進(jìn)程?)是處理這個(gè)連接,腳本結(jié)束後就斷開(kāi)與PHP(還是apache?)的連接了嗎。那些什麼mysql長(zhǎng)連線又是一回事呢?突然覺(jué)得啥都不懂了。 。 。

PHP中文網(wǎng)
PHP中文網(wǎng)

認(rèn)證高級(jí)PHP講師

全部回覆(5)
Ty80

要手動(dòng)關(guān)閉 框架的話類裡面的析構(gòu)函數(shù)寫(xiě)上關(guān)閉的程式碼 一般都封裝好了 不操心 一般都是單例模式連接mysql

漂亮男人

1.mysql開(kāi)啟進(jìn)程處理對(duì)應(yīng)事務(wù)

2.斷開(kāi)與apache httpd進(jìn)程的連接,php以apache mod方式運(yùn)行,apache接受到請(qǐng)求,將請(qǐng)求轉(zhuǎn)發(fā)給mod,mod調(diào)取php
sapi執(zhí)行,整個(gè)過(guò)程php以apache模組方式執(zhí)行,在httpd進(jìn)程中

3.短連結(jié)的缺點(diǎn):建立一個(gè)連接,程式執(zhí)行完畢後,就會(huì)自動(dòng)斷掉與mysql的連結(jié)。於是多少次php執(zhí)行,就會(huì)多少次這樣的創(chuàng)建和釋放過(guò)程。頻繁地創(chuàng)建和釋放連接,比較耗費(fèi)cpu資源。

 長(zhǎng)連接就可以避免每次請(qǐng)求都創(chuàng)建連接的開(kāi)銷,節(jié)省了時(shí)間和IO消耗。
 
 mysql發(fā)現(xiàn)一個(gè)鏈接長(zhǎng)時(shí)間沒(méi)有執(zhí)行查詢請(qǐng)求,就會(huì)自動(dòng)斷掉這個(gè)連接
大家講道理

單從php來(lái)說(shuō)不可以維持長(zhǎng)連接,但是有方法實(shí)現(xiàn)的。

如果是Apache+php_module模式去跑php,透過(guò)mysql_pconnect就可以建立永久鏈接,不過(guò)這個(gè)鏈接是由Apache去維持的(mysql_pconnect在nginx+fpm下不能維持長(zhǎng)連接的,官方文檔有說(shuō)明)

nginx+fpm fpm一般設(shè)定為static,透過(guò)PDO擴(kuò)展,連接資料庫(kù)時(shí)可設(shè)定長(zhǎng)連接,由每個(gè)fpm維持一個(gè)永久連結(jié)。不過(guò)還是要根據(jù)系統(tǒng)去評(píng)估一下fpm進(jìn)程數(shù)和資料庫(kù)最大連線數(shù),php請(qǐng)求過(guò)少的話,大量連線閒置狀態(tài)浪費(fèi)資源(需合理配置mysql wait_time),php請(qǐng)求過(guò)多,fpm進(jìn)程數(shù)過(guò)多導(dǎo)致超過(guò)資料庫(kù)最大連接數(shù)就會(huì)造成too many connections。 。

Peter_Zhu

一般php每次執(zhí)行sql都會(huì)建立一個(gè)短鏈接,當(dāng)執(zhí)行完畢後由php斷開(kāi)鏈接(也許超時(shí)那麼將有MySQL來(lái)斷開(kāi)鏈接)

現(xiàn)在有種通用的減少這種IO開(kāi)銷的方式是建立資料庫(kù)連接池,維護(hù)指定數(shù)量的連接,用的時(shí)候直接獲取相關(guān)資源就可以。

大家講道理

原聲php的話 需要自己手動(dòng)關(guān)閉。 框架的話 一般都封裝好了 直接用 就行

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板