奇迹mu资料库能用mysql库吗?

如何让MYSQL新建的用户只能看到自己的数据库信息?_百度知道MySQL数据库查询表中数据时必须要带上数据库名称才能查询?如何可以不加上数据库名称_百度知道Facebook 用户量十分庞大,为什么还使用 MySQL 数据库?
1.MySQL早期就是为Web应用而生的,而FB正是此领域的业务场景;2.若是使用商业数据库产品,你知道需要多少License费用吗?以Oracle为例官方报价一般25/CPU核,以及采购小型机一般80-120万/台,存储设备一般500万一套;3.集中式数据库很难解决海量用户 和海量数据的问题,用商业数据库做分布式架构,则成本更高。4.互联网企业都是依靠 技术 解决问题,而不单单依靠 商业产品解决问题。总结:首先使用商业数据库产品解决不掉FB的问题;其次使用MySQL的成本 可能是 商业产品的 30%左右;
首先需要承认,Oracle目前还是最先进的关系数据库,其传统使用方法:存储使用EMC阵列(容量大,数据安全),IBM服务器,即IOE组合,这三个组合很强大(高可用,高性能),但是也高价格(二楼介绍了,百万级别),如果数据量不大,这种单机(通常会配置一套异地备库用于容灾)解决方案是可以支撑起大多数传统企业的业务的Facebook是一个有10亿用户的互联网公司,拥有海量数据,而且增长很快,单机数据库完全无法满足这种需求,这时需要对数据进行分片,存储到多个数据库节点中,这个时候如果使用IOE作为其中一个节点,肯定可以保证很好的性能,但是成本就非常非常非常高了,要知道,Facebook的数据库服务器有成千上万台。。。这时MySQL的优势就显示出来了:1:)省去了巨额license费用;2)MySQL代码开源,可以根据业务特点定制和优化;3)将MySQL运行在普通PC上,硬件费用大大降低另外,使用开源的方案可以避免对Oracle过度依赖,当你只有一个选择时,对方可以随便要价总结起来:1)省钱,如果Oracle价格便宜,作为分布式节点当然可以提供比MySQL更好的性能,但这不可能2)扩展性,MySQL源码可见,全球很多开发者帮助优化,可以出钱请专业团队定制功能(如percona,mariadb公司),且不受Oracle公司控制,发展空间更大
论文原文:In Facebook, Edge caches and the Origin cache handle an aggregated 90% of the traffic. For the most popular 0.03% of content, cache hit rates neared 100%.(Astonishing)Facebook用户量大的问题由它的分布式缓存系统主要解决,剩下的自然是开源的mysql更合适了上图是Facebook的photo访问服务图,实际上你可以看见,数据库是在最末端,Cache层已经服务了90%的需求,对于热点图片命中率接近100%,不是说数据库已经不重要了,而是这种重要性降低了,数据库并不是直接与用户进行交互,中间隔了好几层高速Cache,在这种情况下,用自己定制的(注意是定制的)免费的Mysql已经足以满足这汇总需求,何必再去花更多的钱了?上图是Facebook的photo访问服务图,实际上你可以看见,数据库是在最末端,Cache层已经服务了90%的需求,对于热点图片命中率接近100%,不是说数据库已经不重要了,而是这种重要性降低了,数据库并不是直接与用户进行交互,中间隔了好几层高速Cache,在这种情况下,用自己定制的(注意是定制的)免费的Mysql已经足以满足这汇总需求,何必再去花更多的钱了?\n同时,Facebook上所有用户进行读的操作远大于其写的操作,因此Cassandra这样的写非常快的NoSQL数据库,Facebook并没有采用。CSDN上刚有了一篇文章,关于余额宝的去IOE,建议看一下:
自由度:开源软件可以在遵守协议的情况下任意修改以适应 Facebook 的各种应用场景,还有 BUG 的修复也不必苦等厂家漫长的补丁发布,出现问题也不对看着一堆莫名其妙的日志不知所措,直接找源码解决。Oracle 虽然有 7*24 小时的技术支撑,但一是流程慢,二是未必可以解决问题,三是这个也要收费。耦合度:用了 Oracle,那么容灾最好就用 GoldenGate,集群最好用 RAC 等等,如果这些产品不用 Oracle 的,那么出了问题是要三方协调排查的,很麻烦。而且这些产品是需要另外付费购买的。价格:初创时为节约成本,且发展前景未知的情况下,如无必要不会选择商业软件。技术积累:对于一个公司来说,这是应该是非常重要的资源,更换数据库应该需要足够的且无法绕开理由。商业软件的优势是非常稳定、标准实现度高,有技术支持,对于互联网来说这些都不是最重要的问题。
第一当然是授权问题,数量庞大授权肯定比招人费用高第二bug更新及时度,mysql自己团队更新bug添加业务需求功能第三就是方便部署了,自己打包成rpm或者shell install方便迅速
大家已经谈了很多使用MySQL的理由,不过我觉得题主不单单是在问Why,其实还问了How,即 Facebook用户量如此之大,用MySQL怎么能搞得定?因此在下斗胆补充两句今天许多大型互联网项目都会选用MySQL(或任何关系型数据库) + NoSQL的组合方案关系型数据库适合存储结构化数据,如用户的帐号、地址这些数据通常需要做结构化查询(嗯,好像是废话),比如join,这时候,关系型数据库就要胜出一筹这些数据的规模、增长的速度通常是可以预期的事务性、一致性NoSQL适合存储非结构化数据,如文章、评论这些数据通常用于模糊处理,如全文搜索、机器学习这些数据是海量的,而且增长的速度是难以预期的,根据数据的特点,NoSQL数据库通常具有无限(至少接近)伸缩性按key获取数据效率很高,但是对join或其他结构化查询的支持就比较差嗯,好像在答SQL vs NoSQL了,不过就是基于它们的适用范围不同,目前主流架构才会采用组合方案,一个也不能少。目前为止,还没有出现一个能够通吃各种场景的数据库,而且根据,这样的数据库是不存在的。所以我们可以说,Facebook不能例外,也是需要使用关系型数据库的,至于Why MySQL,各位的回答已经很完备了。另外,关于Facebook是如何使用MySQL的,还请各位大牛补充。。。
这个问题,可以说网上好多***,至于为什么用mysql或者说为什么没有用高贵的oracle和“贵足”db2,这个也是仁者见仁智者见智,我自己结合我看到的几家公司的情况,自我感觉应该是如下:1.当下IT行业的走向是开源化、免费化。开源话就意味着我可以定制更加符合我自己需求的数据库。免费可以节省我的开销。2.可定制的呼声越来越高。现在死板的数据库,功能是很强大,但是功能强大,用到的也无非那几个功能,或者有些比较适合自己使用的功能,oracle等无法定制。所以mysql这种开源的数据库会越来越火。不过mysql在oracle的带领下,更新速度明显降低,这应该是oracle本身的问题而不是mysql的问题,当某天mysql消失的时候,肯定会有一个更加优秀、开源、可定制性更高的数据库来代码mysql。3.软件的利润逐渐降低,朝着一个:你买我硬件,我送你配套的软件,靠硬件和服务来获取利润的方向发展。预估几年后,苹果的ios和mac系统、微软的windows系统将会慢慢的降低费用或者直接免费,但这两家公司短时间内应该不会开源,代码还是他们的一笔不可忽视的财富。我是菜鸟一个,如果上述观点与大家不符,可以交流。我下班比较晚,大家直接在我网站上留言即可。
现在都没人发这个链接吗?里面可以解释不少facebook是怎么用mysql的,facebook对mysql的补丁一直是开源的,应该就在lauchpad上有。在Facebook的使用场合,Mysql基本上功能/性能都不弱于Oracle。尤其是定制之后,精细定制对性能的影响是巨大的,比如看下面这个mysql 5.6在编译时去掉 “performance schema” 的性能,以及facebook自己用的5.1加FB自己补丁的性能。
看过facebook今年的一些分享会,先占坑,再来详细说说fb是如何使用mysql的,绝对有干货,fb不仅仅做到的是用mysql,其实mysql存储引擎也自己定制了,所以严格来说,不是“用”“mysql”,而是“hack”了mysql
两点,成本和自由度
已有帐号?
无法登录?
社交帐号登录奇迹mu能用mysql库吗?_百度知道

参考资料

 

随机推荐