MySQL 架构

MySQL 基本架构

简单来说 MySQL 主要分为 Server 层存储引擎层

  • Server 层

    主要包括连接器、查询缓存、分析器、优化器、执行器等,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图,函数等,还有一个通用的日志模块 binglog 日志模块。

  • 存储引擎层

    主要负责数据的存储和读取,采用可以替换的插件式架构,支持 InnoDB、MyISAM、Memory 等多个存储引擎,其中 InnoDB 引擎有自有的日志模块 redolog 模块。现在最常用的存储引擎是 InnoDB,它从 MySQL 5.5.5 版本开始就被当做默认存储引擎了

阅读更多

MySQL 事务的隔离级别的实现

多版本并发控制-MVCC

多版本并发控制(Multi-Version Concurrency Control, MVCC)以乐观锁为理论基础,和基于锁的并发控制最大的区别和优点是:读不加锁,读写不冲突

事务版本号

每次事务开启前都会从数据库获得一个自增长的事务 id,可以从事务 id 判断事务的执行先后顺序。

阅读更多

MySQL 锁

数据库锁的分类

按照锁的粒度划分:

  • 表级锁
  • 行级锁
  • 页级锁

按照锁的级别划分:

  • 共享锁
  • 排它锁

按照使用方式划分:

  • 乐观锁
  • 悲观锁

行级锁、表级锁、页级锁

1. 行级锁

行级锁是 MySQL 中锁定粒度最细的一种锁,表示只针对当前行进行加锁。行级锁分为共享锁和排他锁。

阅读更多