Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 黑洞引擎的创造性应用_Mysql - Fatal编程技术网

Mysql 黑洞引擎的创造性应用

Mysql 黑洞引擎的创造性应用,mysql,Mysql,根据文档: 黑洞存储引擎可以用于诊断和将二进制日志卸载到另一台机器,而无需将数据库存储在该机器上 对于这个引擎,你还能想出什么创造性的用途呢?似乎是一个非常好的用于程序测试的“模拟”数据库 我经常使用Python的内部SQLite数据库来处理这些事情,但是有一个特定于MySQL的模拟数据库就好了;谢谢分享 (作为最后一步,单元测试可以放下测试表;等等,但“黑洞”引擎可以避免这一步。)使用触发器找到一个A: 如果事务中需要进行一系列复杂的插入或更新,可以在应用程序代码中执行这些操作,或者 您可以

根据文档:

黑洞存储引擎可以用于诊断和将二进制日志卸载到另一台机器,而无需将数据库存储在该机器上

对于这个引擎,你还能想出什么创造性的用途呢?

似乎是一个非常好的用于程序测试的“模拟”数据库

我经常使用Python的内部SQLite数据库来处理这些事情,但是有一个特定于MySQL的模拟数据库就好了;谢谢分享


(作为最后一步,单元测试可以放下测试表;等等,但“黑洞”引擎可以避免这一步。)

使用触发器找到一个A:

如果事务中需要进行一系列复杂的插入或更新,可以在应用程序代码中执行这些操作,或者

您可以创建一个“大”
blackhole
表,其中有足够的行来容纳所有值

并创建一个触发器,如:

DELIMITER $$

CREATE TRIGGER ai_bh_table_each AFTER INSERT ON bh_table FOR EACH ROW
BEGIN
  DECLARE lastid1 integer;

  INSERT INTO table1 VALUES (null, new.field1, new.field2);
  SELECT LAST_INSERT_ID() INTO lastid1;
  INSERT INTO table2 VALUES (null, new.field3, lastid1);
  ....  
END$$

DELIMITER ;
如果包含错误检查代码,您甚至可以在不支持它的引擎(如MyISAM)上模拟事务