2016 - 2024

感恩一路有你

mysqlbinlog命令详解 Facebook用户量十分庞大,为什么还使用MySQL数据库?

浏览量:1561 时间:2021-03-14 08:22:57 作者:admin

Facebook用户量十分庞大,为什么还使用MySQL数据库?

尽管Facebook使用MySQL,但它们并不是一成不变的使用它。 事实上,他们的团队已经提交了许多MySQL核心和Innodb插件的高性能增强。 他们的主要重点是增加性能计数器到Innodb。 其他更改集中在IO子系统上,包括以下新功能:

1 innodb_io_capacity:设置服务器的IO容量以确定后台IO的速率限制

2 innodb_read_io_threads, innodb_write_io_threads:设置后台IO线程

3 innodb_max_merged_io:设置可能合并到一个大IO请求中的相邻IO请求的最大数量

Facebook使用MySQL作为键值存储,其中数据随机分布在一大组逻辑实例中。 这些逻辑实例分散在物理节点之间,负载均衡在物理节点级完成。 Facebook已经开发了一个分区方案,其中全局ID被分配给所有的用户数据。 他们也有一个自定义的归档方案,它基于每个用户的频繁和最近的数据。 大部分数据是随机分布的。 令人惊讶的是,据传Facebook有1800个MySQL服务器,但只有3个全职DBA

Facebook主要将MySQL用于结构化数据存储,例如墙贴,用户信息等。这些数据在各个数据中心之间复制。 对于blob存储(照片,视频等),Facebook使用一个自定义的解决方案,涉及外部的CDN和内部的NFS

同样重要的是,Facebook大量使用Memcache,这是一种内存缓存系统,通过在RAM中缓存数据和对象来加速动态数据库驱动的网站,以减少阅读时间。 Memcache是Facebook的主要缓存形式,大大减少了数据库的负载。 拥有一个缓存系统可以使Facebook的速度与调用数据一样快。 如果不需要访问数据库,则只需根据用户标识从缓存中获取数据

所以,“Facebook使用什么数据库”似乎是一个简单的问题,你可以看到他们已经添加了各种其他系统,使其真正的具有网络可扩展性。 但是,仍然可以自由地使用这样一个观点:“MySQL和Oracle或者MS SQL Server一样好或者更好,因为就算只有Facebook使用它,它也有5亿用户!”

mysql的binlog太大太多占用大量磁盘的解决?

今天有个同事来问我,说mysql目录下有很多1.1G的mysql-bin.00000*文件,占用了100多G,占用磁盘空间非常大,这些文件都是msyql日志文件,从几m到几个G都有可通,要解决这个问题并不难,只要修改/etc/my.cnf文件里的#log-bin=mysql-bin和#binlog_format=mixed把这二行注释掉,重启数据库就可以了!

oracle数据库如何与mysql数据库交互?

可以明确的告诉你,不同数据库之间是不存在所谓的交互关系的!所以Oracle和MySQL数据库之间没法交互(无法在Oracle中查询MySQL,反之亦然)。虽说数据库与数据库之间无办法直接交互,但是可以通过某些手段来变相达到交互的目的

1、数据库迁移

数据库是用来存储数据的,对于系统而言它是数据落地存储的一种组织方式。现在市面上的数据库种类也很多,比如说有:关系型数据库、非关系型数据库、时序数据库等。Oracle和MySQL都属于关系型数据库,目前在市面上的占有率也是很高的。不少项目在早期和后期的发展过程中,可能会存在架构上的迁移,比如有这些场景:

  • 项目开发语言的更换;

  • 项目所使用的数据库种类更换。

当现有项目的数据库需要变更时,这就涉及到数据的迁移了,此时需要将这个数据库中的数据全部迁移到另一种数据库中,我们通常借助数据导出导入工具来进行迁移。

2、不同系统间通过API进行数据交互

比如项目A使用的是MySQL,项目B使用的是Oracle,两个项目可以借助API来实现数据交互(查询、导出、新增、删除等)。


以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!

mysqlbinlog命令详解 mysql怎么用 mysql使用

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。