问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php-fpm怎么连接的mysql

发布网友 发布时间:2022-05-01 17:46

我来回答

2个回答

懂视网 时间:2022-05-01 22:08

php和mysql相关扩展有:mysql、mysqli和pdo三种

mysql扩展从php5.5.0被废弃,并且从从php7.0.0开始被废除

mysql之前的使用---几个基本的函数:mysql_connect();mysql_close();mysql_create_db();mysql_db_query();mysql_drop_db();

 从web查询数据库:

一个用户的浏览器发出一个http请求,请求特定的web页面,在该页面中触发表单,提交到php(如:results.php)内部处理。web服务器

Web服务器接收到对results.php页面的请求后,检索文件,并将其传递给PHP引擎处理 

PHP引擎开始解析脚本。脚本主要包括了连接数据库和执行查询的命令。PHP启动了对MySQL服务器的连接并向该服务器发送适当的查询。 

MySQL服务器接收到数据库查询的请求,开始处理这个查询,并将查询结果返回给PHP引擎。 

PHP引擎完成了脚本的运行后,将该HTML返回Web服务器。 

Web服务器再将HTML返回给客户端浏览器,用户就可以看到响应后的结果页面。

php与mysql之间操作原理

标签:mysqli   基本   nbsp   相关   5.5   nec   请求   使用   提交   

热心网友 时间:2022-05-01 19:16

们都知道,php是不能直接操作 mysql的,他需要通过扩展提供接口调用,php的mysql扩展也好几个,只支持面向过程的mysql,既支持面向过程也支持面向对象的mysqli,只支持面向对象的PDO,当然无论是那个扩展,也只是php语法写法上的区别而已,底层其实是一样的。
今天我们不讲语法这些老掉牙的东西,我们随便找一个扩展,来分析一下 php底层 和 mysql 之间的通信原理。
首先我们来理解一下 php-fpm 的工作原理,php-fpm 是一个 php-cgi 进程管理器,其实就是一个连接池,它和nginx配合的工作原理如下。
我们先从最简单的静态方式入手观察他的工作原理
vim php-fpm.ini
[www]
pm = static
pm.max_children = 5
pm.max_requests = 2
上面三句话的含义是什么呢:
1、static 表示静态以静态方式生成 php-fpm 进程
2、pm.max_children = 5 表示当 php-fpm 启动时就启动 5 个 php-fpm 子进程 等待处理 nginx 发过来的请求
3、pm.max_requests = 2 表示每个 php-fpm 子进程处理 2 个请求就销毁,当然父进程每次看到有销毁的自然也就会生成新的子进程
我们来简单验证一下这个说法:
首先重启 php-fpm,让它复位一下
接下来写一条简单的语句输出当前进程ID
echo "当前 php-fpm 进程ID:".posix_getpid();
不断刷新浏览器观察输出变化
当前 php-fpm 进程ID:24548
当前 php-fpm 进程ID:24549
当前 php-fpm 进程ID:24550
当前 php-fpm 进程ID:24547
当前 php-fpm 进程ID:24551
当前 php-fpm 进程ID:24548
当前 php-fpm 进程ID:24549
当前 php-fpm 进程ID:24550
当前 php-fpm 进程ID:24547
当前 php-fpm 进程ID:24551
当前 php-fpm 进程ID:24563
当前 php-fpm 进程ID:24564
当前 php-fpm 进程ID:24565
当前 php-fpm 进程ID:24566
当前 php-fpm 进程ID:24567
当前 php-fpm 进程ID:24563
当前 php-fpm 进程ID:24564
当前 php-fpm 进程ID:24565
当前 php-fpm 进程ID:24566
当前 php-fpm 进程ID:24567
当前 php-fpm 进程ID:24568
当前 php-fpm 进程ID:24569
当前 php-fpm 进程ID:24570
当前 php-fpm 进程ID:24571
当前 php-fpm 进程ID:24572
当前 php-fpm 进程ID:24568
当前 php-fpm 进程ID:24569
当前 php-fpm 进程ID:24570
当前 php-fpm 进程ID:24571
当前 php-fpm 进程ID:24572
可以看得出,第一批id不是按照顺序执行的,进程id为24547的进程是在第四位处理的,然后从下面开始,所有id都是顺序执行的而且每次生成的一批id都是递增,是不是有种mysql自增主键的赶脚呢?
这里需要注意的是,无论是静态还是下面的动态配置方式,只要没有设置 max_requests ,那么进程是不会销毁的,也就是说当一个进程里面出现死循环或者内存溢出等导致进程僵死的情况出现的时候,处理的进程就会少一个了
好吧理解了静态的处理方式,我们其实也很容易知道这个方式的弊端了,当然我们平时服务器不可能就开5个进程每个进程处理2个请求,我们来做一个简单的加减乘除,看看一个服务器应该开多少个 php-fpm 合适
首先我们来看看一个简单的echo需要多少内存:
$size = memory_get_usage();
$unit = array('b','kb','mb','gb','tb','pb');
$memory = @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];
echo "当前 php-cgi 进程所使用内存:".$memory;
观察浏览器我们可以得到一下数据:
当前 php-cgi 进程所使用内存:227.17 kb
也就是说一个简单的什么都不干的php就已经占用了200多K的内存,当然这也不算多。
不过进程多了cpu切换进程速度就会变慢,所以这个数还是需要通过ab等测试工具才能测试出具体应该开多少比较合理
我们先从200开始,不断的增加,架设增加到800的时候,效率和400一样,那我们就没必要开800那么多进程浪费内存了。
那么问题就来了,如果同一时间请求出超过400呢?有人说会排队等待,真的会排队等待吗?答案明显是 php-fpm 是没能力排队了,因为处理请求的php-fpm子进程都用完了,那么等待也就只能是在 nginx 等待,通常一个 nginx 也不只是转发请求给 php-fpm 就完事了,他还要处理静态文件呢?如果这些php请求导致nginx的请求数过多一直在等待,那么访问静态文件自然也会卡了,这时候我们就需要配置成下面的动态处理方式。
[www]
pm.max_children = 10
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
;pm.max_requests = 2
上面五句话的含义是什么呢:
1、dynamic 表示静态以动态方式生成 php-fpm 进程
2、pm.max_children = 10 同时活动的进程数 10个
3、pm.start_servers = 5 表示当 php-fpm 主进程启动时就启动 5 个 php-fpm 子进程
4、pm.min_spare_servers = 2 表示最小备用进程数
5、pm.max_spare_servers = 8 表示最大备用进程数
6、pm.max_requests = 2 上面说过就不说了
当前 php-fpm 进程ID:2270
当前 php-fpm 进程ID:2271
当前 php-fpm 进程ID:2272
当前 php-fpm 进程ID:2273
当前 php-fpm 进程ID:2274
当前 php-fpm 进程ID:2270
当前 php-fpm 进程ID:2271
当前 php-fpm 进程ID:2272
当前 php-fpm 进程ID:2273
当前 php-fpm 进程ID:2274
当前 php-fpm 进程ID:2270
当前 php-fpm 进程ID:2271
当前 php-fpm 进程ID:2272
当前 php-fpm 进程ID:2273
当前 php-fpm 进程ID:2274
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 捡的苹果7手机id激活锁刷机可以用么 iPhone刷机出现激活锁 可以破解吧 苹果6有激活锁刷机能不能插卡 iphone激活锁开启能刷机么 梦见孙子差点被拐走 梦见自己快要被陌生人拉去拐卖,最后得救了 梦见一个人带我去买东西,差点被拐卖,我还把要带我走的那个坏人的腿扭断了 苹果激活锁忘记刷机有用吗 苹果手机需要激活锁能刷机吗 梦见迷路差点被拐卖 iphone的激活锁开启后能刷机吗? 做梦梦到差点被人家卖了,后来我跑出来了,一路上逃的很艰辛 苹果手机激活锁被锁能直接刷机吗 做梦梦见找男朋友 自己却走丢 差点被拐卖 这几天梦到以前梦到过的被追杀,但结局变了,还有差点被拐卖的,什么意思? 梦到去外地回家的路上差点被拐卖 糕仔粉是什么 基隆糕仔饼怎样做好吃 平和家乡糕仔头怎么做,请指示 跪求这个视频里的BGM,身为健身爱好者,超级想找到这首BGM,太燃了!! UI设计中 商城的产品价格用什么色客户体验会比较好 UI设计出来可以做什么? 安顺市师德师风建设三年行动的总体目标是什么? 海南省教育发展情况是怎样的? 献力十三五,青春勇担当作文 勇于担当不悔青春作文800字以上议论 让青春勇担当为主题,写2000字作文!一点头绪都没有,连题目都不知道定什么,求大神指点啊 当代青年应开创意识重于岗位意识作文 潮汕纸钱纸怎么搞的 给死去的人烧的纸钱怎么样裁剪 b站盲盒哪里买 拼多多如何看竞品的sku销量??? 恭喜获得苹果盲盒什么意思 继点故人纸钱一行应该剪几个? b站一番赏在哪可以买 盲盒经济发展迅速,在你看来,盲盒属不属于智商税? 勇于担当 ,创新,较真务实的作文 黄元纸的用法 盲盒里的手机都是在哪里弄的? 如果中了手机盲盒,不交保定费会怎么样?