Chao's Blog Chao's Blog
首页
  • vue

    • vue路由
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • java
  • spring
  • springboot
  • springcloud
  • git
  • maven
  • nginx
  • tomcat
  • springmvc
  • jvm
  • 图数据库
  • mysql数据库
  • redis数据库
  • windows下docker安装nginx并挂载目录
  • linux命令
  • linux安装软件
  • linux脚本
  • idea
  • vscode
  • 归档
  • 综合项目

    • 若依项目
    • mall项目
  • java
  • mybatis
  • xxl-job
  • mybatis
GitHub (opens new window)

~chao

永远菜鸟,不断努力~
首页
  • vue

    • vue路由
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • java
  • spring
  • springboot
  • springcloud
  • git
  • maven
  • nginx
  • tomcat
  • springmvc
  • jvm
  • 图数据库
  • mysql数据库
  • redis数据库
  • windows下docker安装nginx并挂载目录
  • linux命令
  • linux安装软件
  • linux脚本
  • idea
  • vscode
  • 归档
  • 综合项目

    • 若依项目
    • mall项目
  • java
  • mybatis
  • xxl-job
  • mybatis
GitHub (opens new window)
  • cypher图数据

  • mysql数据库

    • mysql尚硅谷宋红康

      • 第00章_写在前面
      • 第01章_数据库概述
      • 第02章_MySQL环境搭建
      • 第03章_基本的SELECT语句
      • 第04章_运算符
      • 第05章_排序与分页
      • 第06章_多表查询
      • 第07章_单行函数
      • 第08章_聚合函数
      • 第09章_子查询
      • 第10章_创建和管理表
      • 第11章_数据处理之增删改
      • 第12章_MySQL数据类型精讲
      • 第13章_约束
      • 第14章_视图
      • 第15章_存储过程与函数
      • 第16章_变量、流程控制与游标
      • 第17章_触发器
      • 第18章_MySQL8其它新特性
      • 第19章【高级篇】MySQL的数据目录
      • 第20章【高级篇】用户、权限、角色管理
      • 第21章【高级篇】MySQL密码管理、配置文件的使用、系统变量
      • 第22章【高级篇】MySQL的逻辑架构
      • 第23章【高级篇】MySQL的存储引擎
      • 第24章【高级篇】索引的数据结构
      • 第25章【高级篇】InnoDB的数据存储结构
      • 第26章【高级篇】索引的创建与删除
      • 第27章【高级篇】索引的设计原则
      • 第28章【高级篇】性能分析工具的使用
      • 第29章【高级篇】索引优化与查询优化
      • 第30章【高级篇】数据库的设计规范
      • 第31章【高级篇】数据库其它调优策略
      • 第32章【高级篇】事务基础知识
      • 第33章【高级篇】MySQL事务日志
      • 第34章【高级篇】锁
        • 读-读
        • 写-写
        • 读-写 或 写-读
        • 并发问题的解决方案
        • 从数据操作的类型划分:读锁、写锁 (共享锁、排它锁)
          • 锁定读
          • 写操作
        • 从数据操作的粒度划分:表级锁、页级锁、行级锁
          • 表锁
          • 表级别的S锁、X锁
          • 意向锁(Intention Lock)
          • 自增锁(Auto-Inc)
          • 元数据锁(MDL锁)
          • InnoDB中的行锁
          • 记录锁(Record Locks)
          • 间隙锁(Gap Locks)
          • 临键锁(Next-Key Locks)
          • 插入意向锁(Insert Intention Locks)
          • 页锁
        • 从对待锁的态度划分:乐观锁、悲观锁
          • 悲观锁(Pessimistic Locking)
          • 乐观锁(Optimistic Locking)
          • 两种锁的适用场景
        • 按加锁的方式划分:显示锁、隐式锁
          • 隐式锁
          • 显示锁
        • 其他锁—全局锁
        • 其他锁—死锁
          • 概念
          • 产生死锁的必要条件
          • 如何处理死锁
          • 如何避免死锁
      • 第35章【高级篇】多版本并发控制MVCC
      • 第36章【高级篇】其他数据库日志
      • 第37章【高级篇】补充:MyCat
      • 第38章【高级篇】主从复制
      • 第39章【高级篇】数据库备份与恢复
      • 第00章_写在最后
    • 总结

    • mysql数据库备份与恢复

    • mysql日志

    • mysql性能优化

  • redis数据库

  • oracle数据库

  • 数据库
  • mysql数据库
  • mysql尚硅谷宋红康
~chao
2022-12-16
目录

第34章【高级篇】锁

# 【宋红康 MySQL数据库 】【高级篇】锁

# 概述

在这里插入图片描述

在这里插入图片描述

# MySQL并发事务访问相同记录

在这里插入图片描述

# 读-读

在这里插入图片描述

# 写-写

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 读-写 或 写-读

在这里插入图片描述

# 并发问题的解决方案

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 锁的不同角度分类

在这里插入图片描述

# 从数据操作的类型划分:读锁、写锁 (共享锁、排它锁)

在这里插入图片描述

在这里插入图片描述

# 锁定读

为读操作加锁也可以将锁设置为排它锁,只不过我们一般将其设置为共享锁。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 写操作

在这里插入图片描述

在这里插入图片描述

# 从数据操作的粒度划分:表级锁、页级锁、行级锁

在这里插入图片描述

# 表锁

在这里插入图片描述

# 表级别的S锁、X锁

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 意向锁(Intention Lock)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 自增锁(Auto-Inc)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 元数据锁(MDL (opens new window)锁)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# InnoDB中的行锁

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 记录锁(Record Locks)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 间隙锁(Gap Locks)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 临键锁(Next-Key Locks)

在这里插入图片描述

# 插入意向锁(Insert Intention Locks)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 页锁

在这里插入图片描述

# 从对待锁的态度划分:乐观锁、悲观锁

在这里插入图片描述

# 悲观锁(Pessimistic Locking)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 乐观锁(Optimistic Locking)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

# 两种锁的适用场景

在这里插入图片描述

在这里插入图片描述

# 按加锁的方式划分:显示锁、隐式锁

# 隐式锁

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 显示锁

在这里插入图片描述

# 其他锁—全局锁

在这里插入图片描述

# 其他锁—死锁

# 概念

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 产生死锁的必要条件

在这里插入图片描述

# 如何处理死锁

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 如何避免死锁

在这里插入图片描述

# 锁的内存结构

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 锁监控

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

# 参考

编辑 (opens new window)
上次更新: 2024/01/26, 05:03:22
第33章【高级篇】MySQL事务日志
第35章【高级篇】多版本并发控制MVCC

← 第33章【高级篇】MySQL事务日志 第35章【高级篇】多版本并发控制MVCC→

最近更新
01
python使用生成器读取大文件-500g
09-24
02
Windows环境下 Docker Desktop 安装 Nginx
04-10
03
使用nginx部署多个前端项目(三种方式)
04-10
更多文章>
Theme by Vdoing | Copyright © 2022-2024 chaos | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式