最近老爸生病住院,着实让我感慨了一番,人是那么的脆弱,生命,精力是那么的稀少,我们应该要用最少的生命创造出最多的价值!写文章前先祝各位it同仁,身体健康,事业有成呵呵。

  好了,最近看网站很多问,一个运维师需要学什么,一个安全管理员需要掌握什么技术,一个web开发者需要学会什么工具,如果遇到一个是实在的有良心的好导师还要点,如果遇到一个糊涂虫我估计随便哪个职业都会让你把一个图书馆的书看完不可,我们哪有那么多精力啊,我们要聪明点,自己多思考,掌握最“核心”的技术,把那些不实在的,短期内根本用不到的东东,全部丢了,要结合自己的“国情”,走自己特色的社会主义道路!  以下讲的东东不能解决所有人的困惑,只是给一个思路,一点灵感,或者领悟,敬请见谅。

  一个站点的最终发展瓶颈在哪里呢,我可以很明确的告诉你-数据库!除非你不用数据库!数据库占用非常多的cpu 内存 磁盘 io资源,而其他的nginx只是负责文件的转发,读取,代理,php则由于要运算,处理指令消耗cpu比较多,内存也占用大点但是其他的io 磁盘等消耗不大。所以压力大小 nginx  < php < mysql!

   数据库我们可以简单的分为key值内存数据库,关系型数据库,非关系型数据库,其中memcached,redis,mysql,postgresql,mongodb,就是典型的代表我们经常用到。现在很多人在喊关系型数据库不行了,大家用nosql吧,素不知,这些人都、是从关系型数据发家的。现在翅膀硬了,过河就拆桥了!其实一个企业的发展和一个人的成长一样,有过程,有各自的差别的,不是生下来就能跑能跳的,也不是生下来就说一样的话,做一样的事的!

   以上软件的特点网上有很多资料,我这里不再罗嗦了,我个人建议企业的发展应该分三步走:

   第一步,当数据在500万左右时直接使用mysql就可以了,完全不需要其他的技术,mysql自身也有缓存机制,并发也不错。

   第二步,当数据达到千万级别是,前端加几个memcached就可以了,mysql使用php应用层读写分离,或者使用变形虫,mysqlproxy等三方软件实现读写分离也可以考虑下,再加上mm多主高可用,整多几台数据库服务器就ok

  第三步,当数据达到亿级别是,才考虑nosql或者硬件加速技术,其中我看好mongodb,貌似它的设计设计团队也看好咱们中国市场。这个时候才是集群,分布文件系统,hadoop等变态技术的集中应用时刻,依我看来,现在的中小企业根本不用去搞,真到那个时候了,nosql也过时了,肯定有别的技术来整,硬件也上来了,整几台大型机,超级服务器也是不错的选择!

  当前阶段我们应该更关注一些实用的技术发挥memcached mysql读写分离到极致,加强sql防注入***,ddos***,各种***溢出***,搞好web前后台开发才是重点,完全不用去理会那些淘宝,新浪的什么新技术,理会了也没用应为咱们整不起那么多带宽,没有那么大的资金,还是等他们自己整明白了,测试到位了再说吧!其次如果您真的要求完美,也可以简单的选择mysql变种,比如你使用myisam马达则可以使用MariaDB,如果你痴心有innodb马达则可以选择perconadb,他们都是个对mysql不同方向的加强版,而且以后oracle抛弃mysql 的时候也是一个不错的选择了,否则那只能选择postgresql了

  希望大家踊跃发表自己的建议,相互学习,相互发展,千万不要遇到问题动不动就让我去找什么专门的团队来解决,我要是找的起也不需要问你了呵呵