解决连接MySQL数据库速度慢的问题

  最近发现从一台服务器A(apache+php)连另外一台MySQL服务器B时,每次都要停顿几秒,页面才会打开。于是尝试解决:

  1. 找到可疑的SQL语句,拷贝下来。
  2. 用B的MySQL Client连数据库,输入SQL语句,正常。排除数据库应用本身的问题。
  3. 用A的MySQL Client连数据库,输入SQL语句,正常。排除A到B的网络连接问题。
  4. review了一遍apache和php的配置文件,没有发现很诡异的地方,于是陷入沉思。
  5. 后来想想,速度如此之慢,原因未必出在apache+php上,毕竟没有做过很特殊的配置。可能还是网络问题,或许B没有把A的请求直接受理,而是先做了其它的事情?又上网搜了搜,在my.cnf里加上skip-name-resolve关掉了反向解析,然后重启mysqld,问题解决。

论流程

  不可否认,一个公司要想拥有强大的生产力,团队协作的好坏是至关重要的,而团队协作能否有效,流程很重要。这个流程包括上下级的沟通方式,以及同级员工之间的沟通方式。
  接触过几种不同的公司管理模式,有些很浅显的认识,于是随便侃侃。没有学过管理课程,不要见笑。
  第一种是僵化的树状管理,流程完全是自上至下的传达。这种管理能否成功,依赖于领导的水平,以及对下级资源的支配能力。但领导个人的能力总是有限的,于是这样的公司可能会变成少数人的天堂,多数人的地狱。领导的权力不容易得到制衡,个人色彩严重。例如一件事情需要两个部门协调解决,那么能否办成,很大程度上要取决于部门领导间的配合程度,这样,一旦工作出现问题,可挽回的途径和余地都有限。
  第二种是小公司的作坊式管理,流程不确定。可能哪几个人有时间,就把他们捏到一起做事。这是一种敏捷的工作模式,可他们由于信息不对称,无法站在领导的层面上看问题,导致做出的成果不能给公司带来最大的效益。例如:基层员工不了解其他同事是否已经做了相似的事情,不了解哪些同事可以帮助他们,不了解他们的工作与哪些人的工作可以结合。导致最后做出了一个个小项目,且无力整合,复用性和结合性差。
  第三种是垂直型管理,职权分明且执行力强。这样的公司还是分部门的:部门间利益互相制衡,任何部门对其它部门都拥有对等的权利和义务;部门内树状管理,即每个人都有自己的唯一上级,汇报考勤、绩效和工作情况,但具体到每个不同的业务,又会形成一个个项目组。项目组内有各个部门的相关成员,且由一个独立的项目经理带队,在项目作用域内支配项目组各个成员的人力资源。也就是说,在项目实施过程中,项目经理被赋予了跨越部门边界的权力,这种权力可以大大减少部门间沟通成本,且不影响公司整体运作情况。当然,项目经理与各个部门经理间对资源的争夺也会构成矛盾,良好的排定优先级,才能使公司整体利益最大化。
  个人比较倾向第三种。在第三种模式中,组织形式不会松散,且沟通成本被有效降低。部门间的壁垒被打通,有利于员工发挥最大的主观能动性,整体生产力可以提升几倍。