美文网首页
数据库基础4:锁一

数据库基础4:锁一

作者: chf041 | 来源:发表于2020-09-17 13:20 被阅读0次

根据加锁的范围,MySQL里面的锁大致可以分成全局锁、表级锁、行锁

全局锁

当需要让整个库处于只读状态的时候,需要对整个数据库实例加锁,典型场景是做全库逻辑备份。
MySQL 提供了一个加全局读锁的方法,命令是 Flush tables with read lock (FTWRL)

表锁

表锁有两种

  • 表锁
    lock tables … read/write。与 FTWRL 类似,可以用 unlock tables 主动释放锁,也可以在客户端断开的时候自动释放。需要注意,lock tables 语法除了会限制别的线程的读写外,也限定了本线程接下来的操作对象。

  • 元数据锁
    在 MySQL 5.5 版本中引入了 MDL,当对一个表做增删改查操作的时候,加 MDL 读锁;当要对表做结构变更操作的时候,加 MDL 写锁。
    MDL 不需要显式使用,在访问一个表的时候会被自动加上。
    MDL 会直到事务提交才释放,在做表结构变更的时候,你一定要小心不要导致锁住线上查询和更新。

相关文章

  • 数据库基础4:锁一

    序 根据加锁的范围,MySQL里面的锁大致可以分成全局锁、表级锁、行锁 全局锁 当需要让整个库处于只读状态的时候,...

  • 相老师的OCP教程 42-45课 文字版

    甲骨论42课锁基础原理 锁是数据库并发的前提。进程等待锁的时间过长会影响用户体验。 锁有latch锁和lock锁。...

  • DataFountain PHP面试

    数据库锁数据库锁方面这篇文章总结的挺好的 数据库锁总结 线程模型及原理操作系统核心原理-4.线程原理(上):线程基...

  • 数据库--锁

    基础 常见问题 数据库锁的分类 按锁的粒度划分,可分为表级锁、行级锁、页级锁(BDB引擎) 按锁的级别划分,可分为...

  • MySQL的悲观锁和乐观锁

    悲观锁与乐观锁是两种常见的资源并发锁设计思路,也是并发编程中一个非常基础的概念。本文将对这两种常见的锁机制在数据库...

  • 乐观锁悲观锁的实现

    悲观锁与乐观锁是两种常见的资源并发锁设计思路,也是并发编程中一个非常基础的概念。本文将对这两种常见的锁机制在数据库...

  • 分布式锁的三种实现方式

    1. 概述 2. 特点 3. 实现方式 4. 数据库实现4.1. 前提4.1.1. 乐观锁4.1.2. 悲观锁4....

  • 高并发秒杀方案

    1、限流 2、负载均衡 nginx 3、缓存 4、异步 5、队列 原子性操作: 1、数据库悲观锁、乐观锁 2、分布...

  • mysql进阶-行级锁、表级锁、乐观锁、悲观锁

    从应用的角度来看数据库锁可分为悲观锁、乐观锁从数据库(InnoDB)的角度看,数据库锁可以分为行级锁和表级锁 1....

  • 浅析mysql的锁

    目录:1.锁的定义与分类(表、行、页)2.锁相关的语句(查看锁)3.mysql事务4.乐观锁和悲观锁5.数据库死锁...

网友评论

      本文标题:数据库基础4:锁一

      本文链接:https://www.haomeiwen.com/subject/tirlyktx.html