mysql blackhole引擎_MySQL BlackHole引擎

概念

像MyISAM、InnoDB,BlackHole是另一种MySQL引擎,从字面意思来看,

其表现就像一个黑洞,只进不出,进来就消失。换句话说,

任何往其中写的数据都将丢失,有点像Linux的/dev/null

比如一个表test的引擎是BlackHole,任何对这个表的insert都将丢失,

对它的select永远返回空集,对应的数据目录下只有一个test.frm文件,且没有其他文件与之关联。

使用场景

一个并不保存任何数据的引擎,到底有什么意义?

关键在于,虽然其不保存数据,但对数据库的操作仍旧记录在binlog日志中。

这就带来一个好处,可以将其作为主从复制的中介,将原来从主库中同步的操作变为

从作为中介的BlackHole引擎数据库中同步。

众所周知,当从库比较多的时候,所有从库都从主库load数据将加重主库的负担。但如果

是从BlackHole的伪主库中同步就可以减轻主库的负担。原有主从架构大概就像下面这样:

![图片描述][1]

现在,BlackHole伪主库作为中介,变成这样:

![图片描述][2]

特别是,可以在伪主库中配置replicate-do和replicate-ignore规则,过滤不需要同步的表。

配置

在伪库中,需要如下配置:配置默认类型为BlackHole,可以用default_table_type = BLACKHOLE或是default-storage-engine = BLACKHOLE打开binlog:log-bin = ms-mysql-bin特别要配置:log-slave-update = 1,只有这样,主库中的操作才会同步到BlackHole的binlog中,否则,只有直接针对BlackHole的操作才会记录到binlog。忽略InnoDB:skip-innodb,当建表语句带有engine=innodb时,将使用默认的BlackHole引擎。需要提醒的是,当采用这种架构时,数据同步多了中间一层,需要进一步考虑延迟问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值