MySQL

Ch08-MySQL 之 锁

June 29, 2022
MySQL
Mysql

1. latch # 是内存结构中的一种轻量级的锁,在 MySQL 数据库中,latch 是用于保护内存中 List Page 完整性的锁结构,latch 可以分为有 mutex、SX rw-lock(spin lock),SX rw-lock 是 MySQL 5.7 的新特性,针对 Page 粒度加的内存锁,有助于提升索引访问效率(针对索引更新的模式)。 2. Lock # Gap Lock(间隙锁)锁住的区间均为开区间,间隙锁之间是兼容的,即两个事务可以同时持有包含共同间隙范围的间隙锁,并不存在互斥关系 Next-Key Lock(临键锁)锁住的区间除了 supremum 伪记录‍‍‍‍‍‍‍‍‍‍‍‍‍所在区间是开区间外,其余区间均为左开右闭区间;如果一个事务获取了 X 行的 next-key lock,那么另外一个事务在获取相同范围的 X 行的 next-key lock 时,是会被阻塞的 2.1 锁与事务隔离级别 # Isolation/Lock Lock Mode + Lock Type Rec Lock Type Read uncommitted Read commited LOCK_IX + TABLE_LOCK LOCK_X + ROW_LOCK LOCK_REC_NOT_GAP Repeatable read LOCK_IX + TABLE_LOCK LOCK_X + ROW_LOCK LOCK_REC_NOT_GAP or LOCK_GAP or LOCK_ORDINARY Serializable 3. ...

Ch06-MySQL 之 复制技术

April 10, 2022
MySQL
Mysql

我们习惯把 MySQL 复制中的角色叫做 Master/Slave,MySQL 8.0 后,术语和命令上都会统一到 Source/Replica。MySQL 采用 log shipping 的复制技术,在 source 节点上生成 binlog,通过 dump 线程把 binlog 推到 replica 节点上,replica 节点首先把 binlog 存储到 relay log 中,然后通过 MTS(Multi-Threaded Slave) 技术 replay 到 replica 节点上的表空间。

...

Ch04-MySQL 之 存储结构

October 31, 2021
MySQL
Mysql

Page # 索引页 组成 说明 File Header 表示页的一些通用信息,占固定的 38 字节。 Page Header 表示数据页专有的一些信息,占固定的 56 个字节。 Infimum + Supremum 两个虚拟的伪记录,分别表示页中的最小和最大记录,占固定的 26 个字节。 User Records 真实存储我们插入的记录的部分,大小不固定。 Free Space 页中尚未使用的部分,大小不确定。 Page Directory 页中的某些记录相对位置,也就是各个槽在页面中的地址偏移量,大小不固定,插入的记录越多,这个部分占用的空间越多。 File Trailer 用于检验页是否完整的部分,占用固定的 8 个字节。 Row # 格式 说明 compact redundant dynamic 与 compact 行格式挺像,但它不会在记录的真实数据处存储字段真实数据的前 768 个字节,而是把所有的字节都存储到其他页面中,只在记录的真实数据处存储其他页面的地址 compressed 会采用压缩算法对页面进行压缩,以节省空间 参考文献 # MySQL 之数据页结构 MySQL 之 InnoDB 表空间 MySQL 之 InnoDB 存储结构总结 附件 #

Ch07-MySQL 之 事务

April 1, 2018
MySQL
Mysql

数据库事务 (Database Transaction),是指作为单个逻辑工作单元执行的一系列操作,要么完全执行,要么完全地不执行。要么完全地不执行。一般来说,事务是必须满足 4 个条件 (ACID):原子性 (Atomicity)一致性 (Consistency)隔离性 (Isolation)持久性 (Durability)

...

Ch01-MySQL 介绍

February 25, 2018
MySQL
Mysql

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

...