MySQL(七):事务底层与高可用原理 程序猿

MySQL(七):事务底层与高可用原理

日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。尤为重要的是二进制日志( binlog )和事务日志(包括redo log 和 undo log )。   MySQL在事务实现机制上采用的是…
MySQL(六):MySQL之MVCC 程序猿

MySQL(六):MySQL之MVCC

1、事务的引入   事务是数据库管理系统(DBMS)执行过程中的一个逻辑单位(不可再进行分割),由一个有限的数据库操作序列构成(多个DML语句),要不全部成功,要不全部不成功。   如:A 给 B 划钱,A 的账户-100元, B 的账户就要+100元,这两个update 语句必须作为一个整体来执行…
MySQL(五):MySQL之事务概述 程序猿

MySQL(五):MySQL之事务概述

一、什么是事务   事务(Transaction):访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。当在数据库中更改数据成功时,在事务中更改的数据便会提交,不再改变。否则,事务就取消或者回滚,更改无效。 二、事务的四大特性 1、原子性(Atomicity)   原子性是指事务包含的所…
MySQL(四):InnoDB引擎底层解析 程序猿

MySQL(四):InnoDB引擎底层解析

官方文档地址:https://dev.mysql.com/doc/refman/8.3/en/innodb-storage-engine.html。   InnoDB存储引擎有三大特性:双写机制、Buffer Pool、自适应Hash。   InnoDB存储引擎架构的内存和磁盘结构如下:   上述架…
MySQL(三):MySQL的执行原理 程序猿

MySQL(三):MySQL的执行原理

1、单表访问之索引合并 - index merge   MySQL中使用多个索引来完成一次查询的执行方法称之为 索引合并(index merge)。索引合并算法有 Intersection合并、Union合并、Sort-Union合并。 1.1、Intersection合并   Intersecti…
MySQL:MySQL中的系统库(二) 程序猿

MySQL:MySQL中的系统库(二)

1、概述   MySQL有几个系统数据库,包含了MySQL服务器运行过程中所需的一些信息以及一些运行状态信息。 系统库作用performance_schemaMySQL服务器运行过程中的一些状态信息,是对MySQL服务器的一个性能监控,包括最近执行的语句,及花费的时间、内存使用情况等信息inform…
MySQL:整体架构(一) 程序猿

MySQL:整体架构(一)

1、整体概述   MySQL是由 连接池、管理工具和服务、SQL接口、解析器、优化器、缓存、存储引擎、文件系统 组成。 1.1、Connection Pool - 连接池   创建数据库连接是一个耗时的操作,连接池的作用就是将这些连接缓存下来,再次访问数据库时,可以直接用已经建立好的连接,提升服务器…
领域驱动设计-领域服务 程序猿

领域驱动设计-领域服务

领域驱动设计(Domain-Driven Design,简称DDD)是一种软件设计方法,它通过将复杂的业务逻辑映射到软件模型中来创建可维护的软件系统。在DDD中,领域服务(Domain Service)扮演着重要的角色,用于封装那些不自然归属于任何实体(Entity)或值对象(Value Objec…
领域驱动设计-聚合根与实体定义和区别 程序猿

领域驱动设计-聚合根与实体定义和区别

在领域驱动设计(DDD)中,聚合根(Aggregate Root)和实体(Entity)都是领域模型中的重要概念,它们在模型中扮演不同的角色,具有不同的特点。 实体(Entity) 实体是具有唯一标识符的对象,它们可以拥有生命周期,并在系统中存在一段时间。实体可以是聚合的一部分,也可以独立存在。实体…
领域驱动设计-实体和值对象的定义、区别 程序猿

领域驱动设计-实体和值对象的定义、区别

在领域驱动设计(Domain-Driven Design, DDD)中,实体(Entity)和值对象(Value Object)是两种核心的概念,它们代表了领域模型中的不同抽象。 实体(Entity) 实体是具有唯一标识符的对象,即使其属性完全相同,实体之间也是不同的。实体通常具有生命周期,它们可以…