DBA.StackExchange 上的一篇文章(保持记录修订号的触发器的最佳实践是什么?)引发了一个关于 MySQL 性能的有趣问题(至少对我来说很有趣)。
上下文是我们要为更新的每一行在表中插入一条记录。在更新行之前,我们希望存储先前的值,然后增加其中一列(“版本”列)。
如果我们在触发器中执行此操作,效果会很好。对于 MySQL,触发器是逐行的,因此这将是一个简单的解决方案。选择表中当前的数据,将其插入到日志表中,并在新数据中更新“版本”列。
但是,可以将此逻辑移至存储过程。如果你这样做,你正在执行插入,然后增加表中的“版本”列。整个事情将基于设置。
那么,在执行此插入时,使用基于集合的存储过程方法或基于触发器的方法会更高效吗?
这个问题是针对 MySQL 的(因为它有逐行触发器),尽管它可以应用于其他逐行触发器 DBMS。
我需要将不同的 MySQL 数据库从多个服务器复制到单个从服务器中。如何才能做到这一点?有没有办法定义多个主主机?