终于弄懂cgi、fast-cgi、php-cgi、php-fpm的关系了

  今天,公司的电脑加了块固态。上午花了点时间重装系统,下午快下班的时候,才想起来本地的php环境还没装。以前,在windows上装过apache压缩包,也装过phpStudy,这次又想折腾一下nginx。
  在nginx关联php时,发现php-cgi的作用跟php-fpm类似,这才让我恍然大悟。结合网上查阅的资料( https://blog.csdn.net/illusion_you/article/details/79424670 )。
  我觉得,cgi和fast-cgi就好像一个说明书,说明了某个东西的使用方法,但又不仅仅是说明,它还规范了这个东西该怎么做,能做什么。cgi和fast-cgi的差别,就像是1.0跟2.0的差别。前者每次调用php,都需要初始化配置和扩展。后者会守护一个进程去管理,性能上肯定是有提高的。
  而php-cgi,是一个实实在在的可执行文件( 在php包里 ),它实现了fast-cgi定义的东西,可以拿来用。但是它又存在问题,比如说,修改配置了需要重启服务进程。而当时,php-fpm的出现,取代了它的地位,它就变成了1.0。

《高性能MySQL》观后感

  今天(是16号,刚过12点),终于把这本书啃完了。去年立的flag,不知不觉就被我放弃了。感觉总结总结,还是要自己来写,而不是把书上的东西,原原本本的抄下来(最主要是懒^_^)。
  去年年底,被迫换工作。正好又赶上18年的裁员大潮,听说跟6月份的P2P平台接连爆雷有关,也不知道是真是假。再加上,前后玩了一个月,虽然没有面试几家公司,但仍感觉处处碰壁,无奈之下,进了一家被我拒绝过的公司。
  看这本书的初衷,也是感觉自己对MySQL的认知,还有所欠缺。特别是在面试过程中,最能体会。当被问到诸如,“事务的隔离级别”、“覆盖索引”、“聚簇索引”时,哑口无言,只能如实的回答不知道。当被问到,MySQL查询优化时,也只能应付式的回答,百度上搜索的结果。
  这本书,从各个角度作为切入点,详细的阐述了如何优化MySQL,让它可以满足你的需求。在不同场景下,分析MyISAM和InnoDB引擎的区别。并且,会一直提醒你,本书的部分内容可能会过时,需要关注最新的信息,而不是完全只信任这本书,还提醒你去官网,或者各种渠道了解MySQL。
  让我印象最深刻的是,我一直纠结于,使用where…in筛选时,in的内容,在应用层用程序代码去排序,是否会影响BTree的扫描策略,从而提高速度?恰巧就在书中,找到了答案(还好我没跳着看)。在书的213页中,关于in的描述,有这么一句话:“MySQL将IN()列表中的数据先进行排序,然后通过二分查找的方式来确定列表中的值是否满足条件”。我当时没做记录,刚刚,回头翻了好几分钟,才找到 (T_T)。
  不过,我还是觉得,这本书有点美中不足。书上的部分内容,讲的不够深入,可能是想让我自己去寻找吧。即使如此,我仍然会安利这本书 ,给身边的朋友看看。