mysql因为他烂所以我用

mysql因为他烂所以我用

作者:LAMP小白  点击:1866  发布日期:2012-09-20 00:15:00  返回列表

“由于php编译器不对代码进行优化,而JAVA、C++会优化,所以php程序员需要更多关注代码的优化,因此php对程序员的要求更高”。显然,这个“观点”是错误的,只是愚人节的一个玩笑而已。不过这倒让我想起了MYSQL。相信搞php的更多的接触是MYSQL,90%以上的PHP程序员接触的最多的是mysql数据库,JAVA程序员所接触的数据库60%是oracle,35%是mysql,而.NET程序员接触的数据库60%是MSSQL,40%是其他(以上言论没有数据支持,只是从我所了解和观察到的的谈起)。


很长一段时间,在PHP里都存在着对开源MYSQL的歌颂和对商业oracle的贬低。很多人认为MYSQL多简单,效率多快。我想,如果真正接触过这两种数据库,并且熟悉的人,都知道这是多么滑稽的事情。mysql无疑比ORACLE差的不是一点点,两者根本不在一个档次上,特别是复杂的查询上,如join连接,in嵌套和事务处理等,在简单查询上,mysql确实不会比oracle差多少。但是总体上说mysql比oracle优秀是自欺欺人。某些程序员认为mysql优秀的理由是很多大网站都在用mysql,并且mysql可以优化啊,集群啊,我想说的是,oracle更可以优化,更可以集群。其实,我们完全可以坦然的承认,mysql总体上就是不如oracle,没有什么丢脸。


中国人买车就是如果买了一辆3万的桑塔纳或QQ车,会觉得很丢脸,即使自己只是上班代步和近郊出游,根本没有必要买几十万的越野车,但是中国人不,桑塔纳丢脸,就得买悍马和宝马。无疑,悍马就是比奇瑞QQ优秀,但是大可不必为自己开的是QQ车而觉得丢脸。 同理,mysql就是没有oracle优秀,我也用mysql,但我承认事实。我之所以用mysql,是因为mysql很烂。为什么这么说呢?因为mysql就是烂啊,烂的实实在在,大家都知道mysql的瓶颈和缺陷,也就知道怎么避免和克服了,mysql的优化措施和规则就那么几条,网上到处是,我放心啊。oracle就不一样了,oracle多阴啊。给oracle加个索引还得战战兢兢的,因为不小心的话,这个索引就会打乱oracle的执行计划。明明一样的语句,但oracle就是可能今天还好好的,明天就慢的要死,就是oracle的内部优化太复杂了,执行计划很容易被改变导致的。而mysql就少了很多这样的陷阱。 这就是经济学中所说的劣币驱逐良币和信息不确定性成本。mysql是比oracle烂,但却可以占据关系数据库的以部分市场,因为mysql这个劣币由于其优点(简单,流通速度快)而驱逐了存在缺点的(复杂,成本高)的良币oracle。市场就是这样的。


“劣币驱逐良币”是经济学中的一个著名定律。该定律是这样一种历史现象的归纳:在铸币时代,当那些低于法定重量或者成色的铸币——“劣币”进入流通领域之后,人们就倾向于将那些足值货币——“良币”收藏起来。最后,良币将被驱逐,市场上流通的就只剩下劣币了。这也就是纸本位的货币驱逐金本位的货币体系。当事人的信息不对称是“劣币驱逐良币”现象存在的基础。因为如果交易双方对货币的成色或者真伪都十分了解,劣币持有者就很难将手中的劣币用出去,或者,即使能够用出去也只能按照劣币的“实际”而非“法定”价值与对方进行交易。(对劣币驱逐良币的更多了解可以百度) 由于人们掌握oracle的成本太高,导致低成本的mysql驱逐高成本的oracle。就这么简单。


同理,鸟哥所说的php需要掌握更多的优化是站不脚的。存在不确定性的JVM的优化更难于掌握,对程序员需要提出更高的要求。因此,学习成本低的php这个劣币驱逐学习成本高的java这个劣币。而内存管理模型简单的劣币java驱逐了内存管理复杂的C这个良币,对人类友好的C这个劣币驱逐了对机器友好的良币汇编语言。当人们发现某一个语言的学习成本更低时,就会抛弃和减少对高成本语言的使用和学习。当然,劣币不是彻彻底底的劣,是因为他们在某一方面有优势,而获得这一优势或收益所要付出的成本更低。但是,市场离不开良币。这又让我想起了postgre 这个悲剧,这个介于oracle和mysql之间的优秀数据库,却只能偏安一隅,夹缝中艰难维生。无论是国内还是国外,都很少见到它的应用。这也让我想起兲朝的财富掠夺,假冒伪劣和山寨,也让我想起了LISP




上一篇:mioPHP新增EXCEL操作类啦 下一篇:快递查询API
0