免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1211 | 回复: 0
打印 上一主题 下一主题

BLACKHOLE存储引擎 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-20 09:46 |只看该作者 |倒序浏览

BLACKHOLE存储引擎就像“黑洞”一样,它接收数据但丢弃它而不是存储它。取回总是返回空集:

mysql> CREATE TABLE test(i INT, c CHAR(10)) ENGINE = BLACKHOLE;
Query OK, 0 rows affected (0.03 sec)
 
mysql> INSERT INTO test VALUES(1,'record one'),(2,'record two');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0
 
mysql> SELECT * FROM test;
Empty set (0.00 sec)

当你创建一个BLACKHOLE表的时候,服务器在数据库目录创建一个表定义文件。文件用表的名字开头,并且有一个.frm扩展名。没有其它文件关联到这个表格。

BLACKHOLE存储引擎支持所有种类的索引。

要允许这个存储引擎,在你建立MySQL之时使用--with-blackhole-storage-engine选项来configure。BLACKHOLE存储引擎在MySQ供应的服务器二进制版里可以找到;通过查看SHOW ENGINES或SHOW VARIABLES LIKE 'have%'的输出,你可以确定你的版本是否支持这个引擎。

到BLACKHOLE表的插入不存储任何数据,但如果二进制日志被允许,SQL语句被写入日志(并被复制到从服务器)。这可以有用帮助地作为重复器或过滤器机制。例如,假设你的应用需要从服务器侧的过滤规则,但传输所有二进制日志数据到从服务器首先导致过多交通的结果。在这种情况下,在主服务器主机上建立一个伪从服务器进程,它的存储引擎是BLACKHOLE,描述如下:

Replication using BLACKHOLE
        for filtering

主服务器写它的二进制日志。伪mysqld进程作为从服务器,应用期望的replicate-do和replicate-ignore规则的合并,并且写一个新的,被过滤的属于它自己的二进制日志 。(请参阅6.8节,“复制启动选项”)。这个已过滤日志被提供给从服务器。

既然伪进程不确实地存储任何数据,只有很小的由在复制主服务器主机上额外的mysqld进程招致的处理开支。这个类型的建立可以用额外复制从服务器来重复。

其它可能对BLACKHOLE存储引擎的使用包括:

·         转储文件语法的验证。

·         来自二进制日志记录的开销测量,通过比较允许二进制日志功能的BLACKHOLE的性能与禁止二进制日志功能的BLACKHOLE的性能。

·         因为BLACKHOLE本质上是一个“no-op” 存储引擎,它可能被用来查找与存储引擎自身不相关的性能瓶颈。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP