Facebook用户量十分庞大,为什么还使用MySQL数据库?
谢邀。我分享下他们MySQL运维优化的逻辑,大家可以借鉴参考一下。本质上讲,他们用的是修改后的MySQL,不是原生MySQL。Facebook创办以来就一直在使用MySQL数据库,也随着数据量的增大而不断改进他们的自有MySQL,目前已经可以轻松支撑来自20多亿用户的数据量。
所以Facebook优化MySQL的经验我觉得有很多借鉴学习之处,有相关数据库经验也可以在评论区讨论探讨,互相学习学习。
1.每台机器都使用多实例的模型,每个机器放多个实例,每个实例放多个DB,多实例之间没有资源隔离,充分发挥实例间的最大性能。
2.将大部分核心业务引擎切换到MyRocks,不改变服务器配置大概可以节省一半服务器资源。
3.主从结构采用基于GTID的一主多从结构,外加一个基于lossless semi-sync机制的mysqlbinlog实现的binlog server。
4.所有的备份都是基于mysqldump实现,可以无需备份索引,只备份数据,而且备份文件压缩比高,更节省磁盘空间,通过改进了的mysqldump,备份过程中还可以进行额外压缩。当然备份时也会控制并行备份的数量,避免影响在线业务性能。
5.快速部署从库可使用xtrabackup在现有存活的SLAVE实例上备份,也可在主库上发起备份,再利用WDT(或者是BT)协议传输到异地,用于拉起从库。
总而言之,Facebook在优化MySQL方面做了很多努力,也提交了很多优秀的Innodb插件来大大提高了MySQL主从集群的性能。而且有传闻称,Facebook拥有大约1800台MySQL服务器,内部却只有三名数据库管理员(DBA)。这有点匪夷所思,不过也侧面说明Facebook确实在MySQL优化方面有着非常不错的效果。
如果你对学习人工智能和科技新闻感兴趣,欢迎订阅我的头条号。我会在这里发布所有与科技、科学以及机器学习有关的有趣文章。偶尔也回答有趣的问题,有问题可随时在评论区回复和讨论,看到即回。
(码字不易,若文章对你帮助可点赞支持~)