MySQL在5.x系列提供了Blackhole引擎–“黑洞”. 其作用正如其名字一样:任何写入到此引擎的数据均会被丢弃掉, 不做实际存储;Select语句的内容永远是空。 和Linux中的 /dev/null 文件完成的作用完全一致。
那么, 一个不能存储数据的引擎有什么用呢?
在大规模的Mysql服务器集群中,如果是存在一台主服务,多台从服务器,在繁忙的业务中,意味着主服务器每操作一个事件,都要往自己的二进制日志中写数据,同时还要往多台从服务器发一次,N台服务器指向一台主服务器,那么需要主服务器发送N次,会启动N个线程,每个线程各自从线程里读二进制日志,那么会有大量的IO,本来是为主服务器减轻负担的,那么这样只能造成压力越来越大,那这样master主机就会为每台slave主机分配出一个binlog dump进程,这样的话会严重影响master的性能。

解决这种问题可以采用多级复制,主服务器还是保持主位置A,再拿一台服务器作为从服务器B,主服务器A只启动一个线程指向从服务器B,那么B服务器再作为其他N台服务器的主,那么B就启动了多个线程,怎么给B服务器减轻压力呢?

在主从之间添加一个分布式master,配置blackhole存储引擎,他起到一个中继的作用,他接收数据但丢其他而不是存储,只是会把master的二进制日志供下层的slave来读取。

第一,让B服务器不再执行查询操作;
第二,让B服务器不再执行写操作;
第三,负责多线程为每个从服务器提供数据,那么就不需要在B服务器存储数据了,但是需要提供二进制日志和中继日志,但B服务器又不需要数据库;

把blackhole引擎,用做slave,配置一些过滤规则,比如复制某些表、不复制某些表。然后也作为一个master,带多个slave。这样的好 处是省了一定的网络带宽,如果没有blackhole做中间环节,那么就需要把第一个master的所有日志都传递到各个slave上去。经过 blackhole这一个slave兼master过滤后再传递给多个slave,减少了带宽占用。而使用blackhole引擎的原因是它不占硬盘空 间,作为一个中转,只负责记日志、传日志。

如何设置呢?

先查看一下当下mysql支持的引擎列表;

没找到blackhole引擎,那么接下来安装。

mysql> INSTALL PLUGIN blackhole SONAME 'ha_blackhole.so';

要设置 default_storage_engine=blackhole 就能实现主从 使用不一致的存储引擎。

补充:如果使用blackhole引擎创建的表,在执行insert操作后,再查询,是没有数据的,因为创建的时候只有.frm表结构文件。

BLACKHOLE总结

  • BLACKHOLE支持所有类型的索引
  • BLACKHOLE 表不存储数据,如果复制基于SBR,语句可以记录并在从库执行;如果复制为RBR、MBR,UPDATE及DELETE操作将会跳过,不会记录也从库不执行。
  • Insert触发器可以正常使用,Update、Delete触发器因为不存储数据不能触发,FOR EACH ROW 也不能触发。
  • BLACKHOLE 表Auto Increment字段不会自动递增,也不保留自增字段的状态
  • 结合复制replicate-do和replicate-ignore规则,可使用BLACKHOLE当做一个分发主服务器
  • 可用来验证转储文件语法
  • 测试binlog的开销量,通过对比 BLACKHOLE 与 不启动 binlog的性能
  • 可能被用来查找与存储引擎自身不相关的性能瓶颈

MySQL的BlackHole引擎在主从架构中的作用的更多相关文章

  1. mysql进阶(十一)外键在数据库中的作用

    MySQL外键在数据库中的作用 MySQL外键的目的是控制存储在外键表中的数据,使两张表形成关联,是MySQL数据库中非常重要的组成部分,值得我们去深入了解.那么,MySQL外键究竟起到哪些作用呢?下 ...

  2. dubbo初认知(dubbo和springCloud关系,在微服务架构中的作用等)(持续更新中)

    一:dubbo是什么? dobbuo是阿里开源的一个高性能优秀的服务框架, 可通过高性能的 RPC 实现服务的输出和输入功能,使得应用可以和 高性能的rpc实现输入和输出的功能,可以了  Spring ...

  3. 一文带你深入了解 redis 复制技术及主从架构

    主从架构可以说是互联网必备的架构了,第一是为了保证服务的高可用,第二是为了实现读写分离,你可能熟悉我们常用的 MySQL 数据库的主从架构,对于我们 redis 来说也不意外,redis 数据库也有各 ...

  4. redis主从架构,分片集群详解

    写在前面:这篇笔记有点长,如果你认真看完,收获会不少,如果你只是忘记了相关命令,请翻到末尾. redis的简单介绍: 一个提供多种数据类类型储存,整个系统都在内存中运行的, 定期通过异步的方式把数据刷 ...

  5. redis主从架构宕机问题手动解决

    1    主机宕机 1.  设置端口6379是主机,端口6380是从机,全部都正常启动 2.  验证在6379写入数据,在6380也能得到数据 3.  现在将6379主机停掉,模拟主机宕机 4.  由 ...

  6. MYSQL中的BlackHole引擎

    MYSQL中的BlackHole引擎 http://blog.csdn.net/ylspirit/article/details/7234021 http://blog.chinaunix.net/u ...

  7. MySQL 主从架构配置详解

    无论是哪一种数据库,数据的安全都是至关重要的,因此熟练掌握数据库的安全备份功能,是作为开发人员,特别是后端开发人员的一项必备技能.MySQL 数据库内建的复制功能,可以帮助我们对数据进行异地备份,读写 ...

  8. MySQL主从架构之Master-Slave主从同步

    MySQL复制 MySQL复制是指将主库上的DDL和DML操作通过二进制日志传到从库上,使主库和从库上的数据保持同步 复制原理: 主服务器将更新写入二进制日志文件,并维护文件的一个索引来跟踪日志循环. ...

  9. MySQL主从架构配置

    MySQL主从架构配置有两台MySQL数据库服务器master和slave,master为主服务器,slave为从服务器,初始状态时,master和slave中的数据信息相同,当master中的数据发 ...

随机推荐

  1. Effective Java 第三版——28. 列表优于数组

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

  2. Redis+Springmvc搭建(附windows下安装)

    作者注:本文主要用于个人学习.同时欢迎交流讨论 1.添加maven依赖: <dependency>          <groupId>org.springframework. ...

  3. EL表达式和JSTL核心标签库

    1 EL表达式 1.1 EL的概述 EL,全名为Expression Language. 主要作用: ①EL表达式主要用于替换jsp页面中的脚本表达式,以便于从各种类型的web域中检索java对象(某 ...

  4. Git的基本原理与常用命令[二]

    标签(linux): git 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 git 的四个区域 四种状态 常用命令 git add #加入暂存(索引区) git ...

  5. 怎么使用IDEA

    war 和 war exploded war部署首先通过IDEA生成.war工程文件,然后将WEB工程以包的形式上传到服务器,因此会替代服务器本来同名的web app项目. war exploded模 ...

  6. NOIP 2017 day -1 杂记

    我几乎要崩溃了. 写任何板子都是第一遍一定写不对,后来发现是傻逼性错误. 好奇怪的,这些东西明明我都会,为什么现在我都忘了? 很烦.现在心里特别乱,写什么都写不下去. 可能我是真的无法放心这次的比赛. ...

  7. K-means聚类的Python实现

    生物信息学原理作业第五弹:K-means聚类的实现. 转载请保留出处! K-means聚类的Python实现 原理参考:K-means聚类(上) 数据是老师给的,二维,2 * 3800的数据.plot ...

  8. ThinkPHP删除栏目(单)

    当我们做一些网站项目的时候,都会遇到这样一类问题,删除一个栏目,而这个栏目又不是最底层栏目,也就是说,被删除的栏目拥有子栏目,这时,我们执行删除该栏目的命令,就需要将该栏目及其子栏目一并删除,因为我们 ...

  9. 【模板小程序】求M~N范围内的质数个数

    /* 本程序说明: [编程题] 求素数 时间限制:2秒 空间限制:32768K 输入M.N,1 < M < N < 1000000,求区间[M,N]内的所有素数的个数.素数定义:除了 ...

  10. 极大似然估计(MLE)

    基本思想 模型已定,参数未知 根据已存在的样本,挑选(求出)能让样本以最大概率发生的参数 极大似然估计和最小二乘法最大区别之一 极大似然需要知道概率密度函数(离散型叫分布律) 若总体X属离散型,其分布 ...