17.2.1.1 基于语句和基于行的复制的优势和劣势

博客介绍了binary log不同复制格式的优劣势。混合复制格式能提供数据完整性和性能的最佳结合。基于语句复制是成熟技术,写入日志数据少,可用于审核数据库,但存在语句不安全等劣势;基于行复制能避免部分基于语句复制的问题。

每个binary log记录格式都有优势和劣势。对于大多数用户,混合复制格式会提供数据完整性和性能的最佳结合。但是,如果要在执行某些任务时利用特定于基于语句的复制格式或基于行的复制格式的功能,则可以使用本节中的信息,该信息概述了它们的相对优缺点, 确定最适合您的需求。
 基于语句复制的优势
 基于语句复制的劣势
 基于行复制的优势
 基于行复制的劣势
基于语句复制的优势
 成熟的技术。
 向日志文件写入最少的数据。当更新或删除影响许多行时,这将导致日志文件所需的存储空间大大减少。 这也意味着从备份中获取和还原可以更快地完成。
 日志文件包含造成所有改变的语句,因此它们可用于审核数据库。
基于语句复制的劣势
 对SBR(基于语句复制)来说,语句是不安全的。不是所有更改数据的语句(如INSERT DELETE UPDATE)都可以使用基于语句的复制。使用基于语句的复制时,很难复制任何不确定性行为。此类数据修改语言(DML)语句的示例包括以下内容:
 基于UDF(user defined function)或者存储程序的语句是不确定的,因为这样一个UDF或者储存程序或者依赖元素的返回值并不是提供给它的参数。(但是,基于行的复制只是复制UDF或存储的程序返回的值,因此其对表行和数据的影响在源和副本上都是相同的。)请参见第17.5.1.16节“复制调用的功能”,了解更多信息。
 使用了不带ORDER BY的LIMIT子句的DELERE 或者UPDATE语句是不确定的。参见17.5.1.18节,”复制和限制”
 使用了NOWAIT或者SKIP LOCKED选项的锁定读语句(SELECT … FOR UPDATE and SELECT … FOR SHARE)。参见使用NOWAIT和SKIP LOCKED的锁定读并发
 确定性的UDF必须应用于副本。
 使用以下函数的语句无法被基于语句的复制所正确复制:
 LOAD_FILE()
 UUID(), UUID_SHORT()
 USER()
 FOUND_ROWS()
 SYSDATE() (除非源和副本都使用–sysdate-is-now启动)
 GET_LOCK()
 IS_FREE_LOCK()
 IS_USED_LOCK()
 MASTER_POS_WAIT()
 RAND()
 RELEASE_LOCK()
 SLEEP()
 VERSION()
但是,所有其他功能都可以使用基于语句的复制正确复制,包括NOW()等。
对于更多的信息,参见17.5.1.14节,”复制和系统函数”
使用基于语句的复制无法正确复制的语句会记录一条警告,如下所示:
在这里插入图片描述

在这种情况下,也会向客户发出类似的警告。 客户端可以使用SHOW WARNINGS显示它。
 INSERT … SELECT语句比基于行的复制需要更多的行级锁。
 与基于行的复制相比,需要进行表扫描的UPDATE语句(因为WHERE子句中未使用索引)必须锁定更多的行。
 对InnoDB来说:使用AUTO_INCREMENT的INSERT语句将阻塞其他不冲突的INSERT语句。
 对复杂语句来说,在副本上,行被更新或者插入之前语句必须被评估和执行。使用基于行的复制,副本只需要更改受影响的行,不用执行整个语句。
 如果副本上的评估出现错误,尤其是执行复杂语句时,随着时间的流逝,基于语句的复制可能会慢慢增加受影响行之间的错误幅度。 请参见第17.5.1.28节“复制过程中的复制错误”。
 存储的函数会以与调用语句相同的NOW()值执行。但是,存储过程不是这样。
 确定性UDF必须应用于副本。
 表定义在源和副本上必须(几乎)相同。 有关更多信息,请参见第17.5.1.9节“在源和副本上使用不同的表定义进行复制”。
 从MySQL 8.0.22开始,DML操作(通过联接列表或子查询)从MySQL授权表读取数据,但不修改它们,因为它们是对MySQL授权表的非锁定读取,因此对于基于语句的语句不安全 复制。 有关更多信息,请参见授权表并发。

内容概要:本文介绍了一个基于事件触发机制的孤岛微电网二次电压与频率协同控制仿真模型,该模型通过Simulink实现,旨在提升微电网在孤岛运模式下的电压频率稳定性。通过引入事件触发机制,有效降低了控制器的通信负担计算开销,同时保证了控制性能。模基于事件触发机制的孤岛微电网二次电压与频率协同控制仿真模型(Simulink仿真实现)型涵盖了微电网中分布式电源的动态特性、控制策略的设计与实现,并通过仿真验证了所提方法在抑制电压偏差、频率波动及提升系统响应速度方面的有效性。此外,文档还列举了大量相关的电力系统、优化算法、信号处理、机器学习等领域仿真资源,展示了其在科研与工程应用中的广泛技术支持。; 适合人群:从事电力系统、微电网控制、自动化及相关领域的科研人员、研究生以及具备一定MATLAB/Simulink基础的工程技术人员。; 使用场景及目标:①研究孤岛微电网中电压与频率的协同控制策略;②优化微电网控制系统中的通信效率与实时性;③开展基于事件触发机制的控制算法仿真与验证;④结合其他智能算法(如优化算法、机器学习)进微电网高级控制策略开发。; 阅读建议:建议读者结合文中提供的仿真模型与相关资源链接,动手实践Simulink建模过程,重点关注事件触发条件的设计与控制效果的对比分析,同时可拓展学习文档中提及的优化算法与智能控制方法,以提升综合科研能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值