# 前言

本篇只介绍 MySQL 锁的基本知识。

我的 MySQL 版本是 MySQL 5.7.34, 建议使用 MySQL 5.6 及之后的版本。

## 先上一个图


## 为什么要使用锁?

个人理解: 使用锁就是实现事务的原子性与隔离性、数据的一致性。

## 扩展阅读

DDL : 数据定义语言(Data Definition Language), 使用 createalterdrop 来定义数据库的 库、表、列 等, 操作的是数据表结构。

DML : 数据操纵语言(Data Manipulation Language), 使用 selectinsertupdatedelete 操作数据库中的数据。

DQL : 数据控制语言(Data Query Language), 使用 selectfromwheregroup by 等查询数据库中的数据。

点我查看 - MySQL - 一文快速了解 MySQL 全局锁、表级锁、行级锁、元数据锁、自增锁、意向锁、共享锁、独占锁、记录锁、间隙锁、临键锁、死锁

点我查看 - MySQL 常用存储引擎简介

点我查看 - MySQL - 可重复读隔离级别在哪种情况下会出现幻读

点我查看 - MySQL 三范式理解


一、MySQL 全局读锁

1.1 全局读锁的基本概念

全局锁 就是对整个数据库的表加读锁。加全局读锁后, 增删改、建表、修改表结构 等操作都会被阻塞。


1.2 全局读锁的使用场景