经典的PHPer为什么被认为是草根?

2019-04-11 02:21:40刘景俊


我的想法源起于这样一个事情,有一次一个网站的技术总监问我,为什么他们的网站那么慢,要怎么办。当时,我的MSN里Zend总部的工程师正好在线,我就问他PHP响应比较慢了,怎么办?他当时直接告诉我,数据库问题!肯定是数据库没有优化设计好。所以,我没有给那个技术总监确切的答案了,因为他们的数据库设计我们是不能涉及的。所以就给了大概的数据库优化的建议。这样的事情屡次发生,我就开始怀疑,为什么Zend总部的工程师每次都跟我说是数据库的问题呢,难道我们不能从PHP层面来解决这个问题吗?答案是不能!因为PHP目前的运行速度已经是很快了,通过Zend的性能分析也能看到一个用户的点击,PHP的运行时间只有10%不到,那PHP在干吗?它在等。等数据库的查询结果。这个方面在目前的PHP产品中有了很大的提高,那就是Caching和网页静态化两个方案。Caching可能大家会比较陌生,但是网也静态化现在连PHP产品的用户都非常清楚了。速度快、容易被搜索到等等,好处不言而喻。开玩笑地说,现在网站的主页实现网页静态化只需要硬盘足够大。J至于Caching就比较复杂些,也是大多数PHPer感到头疼的地方。甚至于有些人会用C来实现。因为Caching中的数据有效期验证、查找、提取、更新等等都是比较难处理。当然,也有人会用数据库来处理Caching问题。

所以,当访问量激增的时候,PHP架构的网站会出现的很多问题都因数据库而起。数据库的同步问题还不算什么。关键是数据库的响应速度会有指数级的降低。这个问题我在10月23号LAMP发布会的时候问过MySQL的副总裁。他当时也没有给我比较完美的答案(这也我的意料之中),因为数据库总会有瓶颈的,除非是神仙数据库,哈哈!
这里有个题外话,LAMP大会的时候我跟Yahoo的一个技术高管聊的时候,我问他Yahoo在选择MySQL还是Oracle的时候是怎么考虑,他的答案令我非常惊讶。他说大部分的时候我们是会用MySQL的,因为它的性能已经达到我们的要求。但是什么时候我们会选用Oracle呢,就是当我们需要存储收费用户的数据的时候。我就问为什么,难道Oracle比MySQL稳定吗?他说,这个倒没有特别考虑。关键是如果使用Oracle的话,当出现问题的时候我们可以找到负责人,Oracle会负责事故的处理,但是如果用MySQL的话,我们找谁去?

所以,我们对数据库的看法应该纠正过来,就是说数据库不是万能的。如果有实力的话自己开发数据库。听说Google就是那样的。

那么我们怎么看待数据库呢?我个人的理解是数据库只是用来降低开发成本的手段。因为采用数据库以后我们不需要考虑数据的存储,尤其是排序和查找。但是这会带来什么问题呢?就是当业务膨胀的时候,数据库就成为瓶颈了!这个时候问题就会非常棘手!因为这个是底层的数据处理。牵一发而动全身。
相关文章 大家在看