日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

mysql killed进程不结束_php和mysql连接方式(短 长 池)

發(fā)布時(shí)間:2023/11/27 生活经验 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql killed进程不结束_php和mysql连接方式(短 长 池) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一個(gè)php work進(jìn)程只能處理一個(gè)請(qǐng)求,當(dāng)完成一個(gè)請(qǐng)求了,才能處理下一次的請(qǐng)求

2.短連接:

執(zhí)行到php關(guān)閉mysql連接的代碼時(shí),就斷開,否則在處理本次請(qǐng)求結(jié)束的時(shí)候,釋放mysql連接

實(shí)驗(yàn):

<?php$dbhost = '127.0.0.1';$dbdatabase = 'im';$username = 'root';$userpass = '123456';$dsn='mysql:host='.$dbhost.';dbname='.$dbdatabase.';';$dbh=new PDO($dsn,$username,$userpass);$stmt=$dbh->query('SELECT id FROM im_fri');$row=$stmt->fetch();sleep(10);var_dump($row);

并發(fā)請(qǐng)求: /usr/local/ab/usr/bin/ab -c 100 -n 100 http://192.168.149.130/login/index

結(jié)果: 查看mysql連接數(shù): show full processlist
這里我截了php work進(jìn)程,和兩個(gè)時(shí)刻的mysql連接情況的圖片

一共五個(gè)php-fpm進(jìn)程,mysql有五個(gè)連接,連接的id,會(huì)遞增,說明每次請(qǐng)求完成,mysql連接消失,新的請(qǐng)求,php會(huì)重新連接mysql。

3.長連接:

當(dāng)我們創(chuàng)建的數(shù)據(jù)連接為PDO持久化連接時(shí),該連接在使用完畢或者PHP腳本結(jié)束后并不會(huì)被關(guān)閉,而是被PHP緩存起來。當(dāng)另一個(gè)使用相同憑證(主機(jī)、端口、數(shù)據(jù)庫名、用戶名、密碼等信息完全一致)的PHP腳本請(qǐng)求建立連接時(shí),PHP將直接返回之前被緩存起來的連接,從而達(dá)到連接重用。持久連接緩存可以避免每次訪問數(shù)據(jù)庫都要建立一個(gè)新連接的開銷。

實(shí)驗(yàn):

<?php$dbhost = '127.0.0.1';$dbdatabase = 'im';$username = 'root';$userpass = '123456';$dsn='mysql:host='.$dbhost.';dbname='.$dbdatabase.';';$dbh=new PDO($dsn,$username,$userpass,  [PDO::ATTR_PERSISTENT => true]);$stmt=$dbh->query('SELECT id FROM im_fri');$row=$stmt->fetch();sleep(10);var_dump($row);

并發(fā)請(qǐng)求: /usr/local/ab/usr/bin/ab -c 100 -n 100 http://192.168.149.130/login/index

結(jié)果: 查看mysql連接數(shù): show full processlist
這里我截了php work進(jìn)程,和兩個(gè)時(shí)刻的mysql連接情況的圖片

一共五個(gè)php-fpm進(jìn)程,mysql有五個(gè)連接,連接的id不會(huì)變動(dòng),說明每次請(qǐng)求完成,mysql連接不會(huì)消失,在每個(gè)php-fpm進(jìn)程中處理新的請(qǐng)求,php會(huì)重用以前mysql連接, 請(qǐng)求都結(jié)束了,每個(gè)php-fpm進(jìn)程和mysql的連接還是不會(huì)斷的,一直保持著。

3. 總結(jié)

以上內(nèi)容希望幫助到大家,很多PHPer在進(jìn)階的時(shí)候總會(huì)遇到一些問題和瓶頸,業(yè)務(wù)代碼寫多了沒有方向感,不知道該從那里入手去提升,對(duì)此我整理了一些資料,包括但不限于:分布式架構(gòu)、高可擴(kuò)展、高性能、高并發(fā)、服務(wù)器性能調(diào)優(yōu)、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql優(yōu)化、shell腳本、Docker、微服務(wù)、Nginx等多個(gè)知識(shí)點(diǎn)高級(jí)進(jìn)階干貨需要的可以免費(fèi)分享給大家,需要

PHP進(jìn)階架構(gòu)師>>>視頻、面試文檔免費(fèi)獲取?docs.qq.com

或 者關(guān)注咱們下面的知乎專欄

PHP大神進(jìn)階?zhuanlan.zhihu.com

總結(jié)

以上是生活随笔為你收集整理的mysql killed进程不结束_php和mysql连接方式(短 长 池)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。