摘要: MySQL 磁盘 I/O 次数过高时优化的办法 事务提交时,需要将 Redo Log 和 Binlog 持久化到磁盘中,可以通过四个参数,来控制刷盘时机,以降低磁盘 I/O 的频率。 组提交的两个参数 binlog_group_commit_sync_delay:控制事务提交前的最大等待时间。 bi 阅读全文
posted @ 2025-02-22 11:27 SlackClimb 阅读(76) 评论(0) 推荐(0)
摘要: 两阶段提交 为什么需要两阶段提交? 事务提交后,Redo Log 和 Binlog 都要持久化到磁盘中,但是这两个是独立的逻辑,可能会出现半成功状态,造成两种日志之间的逻辑不一致。 1.1. 半成功状态 Redo Log 成功持久化,而 Binlog 失败 如果在将 Redo Log 刷入到磁盘后, 阅读全文
posted @ 2025-02-22 11:22 SlackClimb 阅读(427) 评论(0) 推荐(0)
摘要: Binlog(Binary Log,归档日志) 为什么需要 Binlog? Binlog 是 MySQL 中的二进制日志,用于记录数据库的所有写操作(INSERT、UPDATE、DELETE 等) 1. 主从复制 作用:是 MySQL 主从复制的核心,主库将 Binlog 发送给从库,从库重放这些操 阅读全文
posted @ 2025-02-21 23:08 SlackClimb 阅读(359) 评论(0) 推荐(0)
摘要: ​ Redo Log(重做日志) 为什么需要 Redo Log? 1. 崩溃恢复 数据库崩溃时,系统通过 Redo Log 来恢复尚未写入磁盘的数据。Redo Log 记录了所有已提交事务的操作,系统在重启后会重做这些操作,以保证数据不会丢失。 ​ 编辑 2. 提高性能 使用 Redo Log 可以 阅读全文
posted @ 2025-02-21 23:04 SlackClimb 阅读(202) 评论(0) 推荐(0)
摘要: ​ Buffer Pool 什么是 Buffer Pool? Buffer Pool 是数据库管理系统(DBMS)中的一块 Cache(内存区域),用来缓存从磁盘中读取到的 Data Pages(数据页)。Data Pages 通常是表中的数据行与索引数据,通过缓存 Data Pages,Buffe 阅读全文
posted @ 2025-02-19 22:04 SlackClimb 阅读(90) 评论(0) 推荐(0)
摘要: ​ Undo Log(回滚日志) 为什么需要 Undo Log? 1. MySQL 的隐式开启事务 自动提交(autocommit = 1) 在默认的自动提交模式下(autocommit = 1),MySQL 在执行每一条增删改语句时会隐式地开启一个独立的事务,并在执行完成后自动提交。 目的 原子性 阅读全文
posted @ 2025-02-19 21:26 SlackClimb 阅读(88) 评论(0) 推荐(0)
摘要: 核心思想 责任链模式(CoR Pattern)是一种行为型设计模式,允许你将请求沿着处理者链进行发送,收到请求后,每个处理者均可对请求进行处理,或将其传递给链上的下个处理者。 结构 1. Handler(抽象处理者) 定义了所有具体处理者的通用接口,通常包含用于处理请求的单个方法和设置链路上下一个处 阅读全文
posted @ 2025-02-06 18:04 SlackClimb 阅读(379) 评论(2) 推荐(4)
摘要: 核心思想 命令模式(Command Pattern)是一种行为型设计模式,将请求(操作)封装成一个独立对象,从而解耦请求方与接收方,使得命令的执行、撤销、排队等操作更易扩展和灵活。 结构 1. Command(命令接口) 定义一个执行命令的接口,所有具体命令类都需实现此接口。 2. ConcretC 阅读全文
posted @ 2025-02-06 18:02 SlackClimb 阅读(129) 评论(0) 推荐(0)
摘要: 核心思想 享元模式(Flyweight Pattern)是一种行为型设计模式,用于定义一系列算法或策略,将它们封装成独立的类,并使它们可以相互替换,而不影响客户端的代码,提高代码的可维护性和扩展性。 结构 1. Strategy(抽象策略接口) 定义一些列可供替换的算法方法。 2. Concrete 阅读全文
posted @ 2025-02-04 17:39 SlackClimb 阅读(95) 评论(0) 推荐(0)
摘要: ​ 核心思想 模板方法模式(Template Method Pattern)是一种行为型设计模式,定义了一个算法的骨架(模板),将某些步骤延迟到子类中实现(在不修改结构的情况下),以避免代码重复,提高代码复用性,保持算法的结构稳定。 核心: 模板方法:在父类中定义一个算法的骨架(即模板方法),其中包 阅读全文
posted @ 2025-02-04 17:37 SlackClimb 阅读(117) 评论(0) 推荐(0)