diff --git a/mysql/mysql文档/mysql_事务.md b/mysql/mysql文档/mysql_事务.md index ec5e956..24c6337 100644 --- a/mysql/mysql文档/mysql_事务.md +++ b/mysql/mysql文档/mysql_事务.md @@ -574,4 +574,21 @@ delay会在每一次purge操作完成后重新计算。 #### binlog 在mysql中,binlog通常用于replication和point-in-time recovery等方面。在binlog中,每个修改数据库内容的事件都会被记录。 -binlog是一系列log files的集合,其中记录了mysql的数据修改和结构变化,binlog确保了所有事务都能够在slave servers之间准确的被复制,维护了在分布式环境下的一致性。如果发生宕机,可以通过binlog将数据库寰宇拿到其已知的`最后良好状态`。 \ No newline at end of file +binlog是一系列log files的集合,其中记录了mysql的数据修改和结构变化,binlog确保了所有事务都能够在slave servers之间准确的被复制,维护了在分布式环境下的一致性。如果发生宕机,可以通过binlog将数据库寰宇拿到其已知的`最后良好状态`。 + +##### replication && point-in-time recovery +`replication`涉及到从mysql master server到salve server复制数据的过程。通过binlog,slave server能够按照事件发生的顺序从master server中复制数据。 + +`point-in-time recovery`则是支持将数据库恢复到先前的某一个时间点,通过binlog的replay即可实现。 + +##### binlog format +mysql支持三种binlog类型 +- row:其会记录row的变更,提供受影响数据的详细细节 +- statement:其会记录`造成修改的实际sql语句`。其记录的信息不如row详细,但是会更加紧凑 +- mixed:其整合了row和statement格式,会基于不同事务的需要动态在`row`和`statement`之间进行切换 + +#### group commit +group commit通常用于提高事务处理系统的性能。group commit将多个事务绑定在一起,系统能够减少磁盘写入次数并且条性能,特别是在事务负载较高的系统中。 + +##### group commit机制 +group commit允许多个事务合并为一次提交,而不是每个事务单独提交。该方案会减少磁盘的io操作,提高整体吞吐量。在高并发场景下,相比于每个事务单独提交,group commit机制能够显著提高性能。