Facebook用户量十分庞大,为何还使用MySQL数据库?
土豆我来啦
上期我们简单的说了一些关于数据库的基础知识
本期我们来捋捋Mysql的优势
MySQL 作为是一种开放源代码的关系型数据库管理系统(RDBMS),任何人都可以在 GeneralPublic License的许可下下载且个性化优,另外,MySQL 的可靠性,速度以及它适应性强而受人欢迎。提供用于管理、检查、优化数据库操作的管理工具 用其来管理内容无疑是很好的选择,而且 MySQL 数据库系统使用最常用的为数据库管理语言--结构化查询语言(SQL)进行数据库管理。不仅如此,MySQL 其自身的特点也是它的加分项。它支持AIX、FreeBSD、Windows等多种操作系统。不仅能够作为一个单独的应用程序应用在客户端服务器网络环境中,还能够作为一个库而嵌入到其他的软件中提供多语言支持。
除了MY SQL还有商业数据,比如Oracle数据库,但是商用数据库价格非常的贵,比如官方报价一般25/CPU核,以及采购小型机一般80-120万/台,存储设备一般500万一套,但是Facebook现在有近万台的服务器,这是一笔极为庞大的资金。常规数据库的集中式数据库很难解决海量用户 MySL的分布式数据库正好适合;MYSQL可以定制化,更适应Facebook业务发展需要。oracle等无法定制,不能满足每个不同企业的定制化数据要求。所以mysql数据库会越来越火,也越来越受到企业的重视。
虽然数据库提供了很多我们需要的功能,但是为了提高应用的性能,我们很多时候不一定要借助数据库来完成,比如实现一些统计功能,我们可以不借助数据库的存储过程来实现,而是采用应用程序的方式来实现,让数据库只做一件事:就是数据管理,不做太复杂的数据处理操作。
首先需要承认,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公司控制,发展空间更大
这次我们就先到这里啦
我们下期再见哦
需要数据库安装包+学习资料的可以加我微信领取哦
内容源自网络