我用引擎黑洞创建了表,基本上,黑洞存储引擎充当一个“黑洞”,它接受数据,但丢弃数据,而不存储数据。检索总是返回空的结果。
我听说,我们可以通过创建一个新表来检索数据,该表与存储引擎的旧表相同,存储引擎为innodb或myisam。但我也试过了,但没能得到结果。有人能帮我解决这个问题吗?
mysql> CREATE TABLE test1(i INT, c CHAR(10)) ENGINE = BLACKHOLE;
Query OK, 0 rows affected (0.08 sec)
mysql> INSERT INTO test1 VALUES(1,'record one'),(2,'record two');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from test1;
Empty set (0.00 sec)
mysql> CREATE TABLE test_recovery as select * from test1;
Query OK, 0 rows affected (0.17 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> ALTER TABLE test_recovery ENGINE = innodb;
Query OK, 0 rows affected (0.25 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM test_recovery;
Empty set (0.00 sec)发布于 2014-08-08 15:44:11
你说过
我听说我们可以通过创建一个新的表来检索数据,这个新表与存储引擎的旧表相同,比如innodb或myisam。
任何告诉您这一点的人都应该告诉您启用二进制日志,如@jynus所述。
黑洞存储引擎根本不存储数据。这是一个特殊的存储引擎,用于非常细致的设置。
有些有星空拓扑可以将数据写入MySQL复制母版。大师除了黑洞桌子什么都没有。所有奴隶都有InnoDB或MyISAM。这样,如果主人被黑了,就没有本地数据。这样的大师被称为分销大师。
Apr 28, 2011:星型拓扑中的MySQL (ServerFault)Mar 11, 2011:星型拓扑中的MySQL (StackOverflow)这包括用三台服务器设置循环复制。两个大师,混合了黑洞表和奴隶与所有真实的桌子。此技术先于多源复制。
Apr 18, 2013:单从多主MySQL复制May 16, 2011:在mySQL DB中可以使用多主单从吗?(ServerFault)我知道有一个Web托管客户端会去Percona处理一个表上的性能问题。由于客户端具有多个从服务器的MySQL复制,Percona将问题表转换为黑洞。这提高了母版的写性能。数据必须从奴隶那里读取。
我曾在一篇用于记录审计信息(在MySQL中触发器与存储过程的性能)的文章中建议这样做。
虽然其中的一些评论让我想起了StarTrek DS9,黑洞存储引擎的名字是这样的:从来没有数据被存储!如果启用了二进制日志,这将是获得数据的唯一机会。
https://dba.stackexchange.com/questions/73502
复制相似问题