MySQL中锁的概述

按照锁的粒度来分可分为:全局锁(锁住当前数据库的所有数据表),表级锁(锁住对应的数据表),行级锁(每次锁住对应的行数据)

加全局锁:flush tables with read lock; //为当前实例加上全局锁

然后使用        mysqldump -u用户名 -p密码 备份的数据库名 > 要备份到的sql文件,注意mysqldump在windows命令行下执行。

备份完成使用unlock tables;

-------------------------------------------

表级锁分为表锁,元数据锁和意向锁

1.表锁:read lock 和 write lock 即共享读锁和独占写锁

客户端a加了读锁后,所有客户端都可以读,a不可以对该表更新,其他客户端的写操作会被阻塞,直到该锁被释放。

客户端a加了写锁后,当前a客户端对该表可读可写,但其他客户端的读写操作都会被阻塞

2.元数据锁

对一张表进行crud时会加上mdl读锁,对表结构进行变更时,会加上mdl写锁

 3.意向锁(lock in share mode)

因为表锁和行锁冲突,表锁在添加时会检查每一行数据是否加了行锁,而意向锁的存在,使得免去了逐行检查行锁的必要,只要检查意向锁是否和要加的表锁兼容即可

意向锁分为:意向共享锁IS和意向排他锁IX 

------------------------------------

行级锁,每次锁住对应的行数据,锁定的粒度最小,并发度最高,发生锁冲突的概率最低,在innoDB中应用。行级锁分为:行锁,间隙锁,临键锁

1.行锁是通过索引上的索引项加锁来实现的,而不是对记录加的锁,锁定了单个行记录,在RC,RR隔离级别下都支持

默认情况下,innoDB在RR隔离级别下运行,使用临键锁进行搜索和索引扫描来防止幻读

针对唯一索引,例如主键索引进行检索时,对已存在记录进行等值匹配,会自动优化为行锁

如果不通过索引检索数据,那么就会恶化为表锁

2.间隙锁,锁的是不含该记录的间隙,防止其他事务在这个间隙进行insert,产生幻读,在RR隔离级别下支持。

(1)给不存在的记录加锁时,会给相邻的记录之间加上间隙锁,注意不包含间隙两边的记录。

(2)当使用普通索引时,

例如为3加锁,这时会锁住3到7之间的间隙,即3之后第一个不满足查询需求的值,同时会把3和3之前加间隙锁,因为不知道是否会在3之前再插入一个3。

(3)当使用范围查询时,例如查询id >= 19 会对该19记录加上行锁,还会对满足查询的下一个记录25之间加上临键锁,即锁住19-25的间隙,然后再加一个临键锁,锁住25和25之后到正无穷的间隙

3.是行锁和间隙锁的结合,锁住数据的同时,锁住了间隙。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/632947.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【PyTorch】PyTorch之Tensors操作篇

文章目录 前言一、Tensor创建1、TENSOR2、SPARSE_COO_TENSOR3、SPARSE_CSR_TENSOR4、ASARRAY5、AS_TENSOR6、FROM_NUMPY7、FROMBUFFER8、ZEROS和ZEROS_LIKE9、ONES和ONES_LIKE10、ARANGE11、LINSPACE12、LOGSPACE13、EYE14、EMPTY和EMPTY_LIKE15、FULL和FULL_LIKE 前言 介绍Te…

Docker 安装 PHP

Docker 安装 PHP 安装 PHP 镜像 方法一、docker pull php 查找 Docker Hub 上的 php 镜像: 可以通过 Sort by 查看其他版本的 php,默认是最新版本 php:latest。 此外,我们还可以用 docker search php 命令来查看可用版本: runoobrunoob:…

使用C#操作文件:一个实际案例——替换文件中的IP地址

标题: 使用C#操作文件:一个实际案例——替换文件中的IP地址 介绍: 欢迎阅读我的最新博客!今天,我们将探讨如何使用C#来处理一个实际的编程挑战:读取一个配置文件并替换其中的IP地址。这是一个非常常见的…

windows安装mysql5.7

看了如何学习mysql后,就开始本地安装mysql,开始学习了。 1.官网下载 官网地址: https://dev.mysql.com/downloads/mysql/ 选择5.7版本 点击 “No thanks, just start my download”开始下载 下载64位的压缩包版 解压下载好的.zip文件&#xf…

Adobe全新AI驱动的Premiere Pro功能消除了枯燥的音频编辑任务

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

(2023版)斯坦福CS231n学习笔记:DL与CV教程 (12) | 视觉模型可视化与可解释性(Visualizing and Understanding)

前言 📚 笔记专栏:斯坦福CS231N:面向视觉识别的卷积神经网络(23)🔗 课程链接:https://www.bilibili.com/video/BV1xV411R7i5💻 CS231n: 深度学习计算机视觉(2017&#xf…

C# dataGridView 列的勾选框改变事件

dataGridView 增加一列 DataGridViewCheckBoxColumn 然后设置复选框值如下图: dataGridView增加两个事件 private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e){//提交改变,触发dataGridView1_CellValueChanged事件&…

Android Launcher3各启动场景源码分析

文章目录 一、概述二、开机启动Launcher2.1、开机启动Launcher流程图2.2、开机启动流程源码分析 三、短压Home键启动Launcher3.1、短压Home键启动Launcher流程图3.2、短压Home键启动Launcher源码分析 四、Launcher异常崩溃后的自启动4.1、Launcher异常崩溃后的自启动流程图4.2、…

OpenGL DIR

Mesa简介-CSDN博客 Mesa, also called Mesa3D and The Mesa 3D Graphics Library, is an open source software implementation of OpenGL, Vulkan, and other graphics API specifications. Mesa translates these specifications to vendor-specific graphics ha…

C++进阶(五)二叉搜索树

📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、二叉搜索树概念二、二叉搜索树操作三、二叉搜索树的实现四、二叉搜索树的应用五、二叉搜索…

mac上搭建 hadoop 伪集群

1. hadoop介绍 Hadoop是Apache基金会开发的一个开源的分布式计算平台,主要用于处理和分析大数据。Hadoop的核心设计理念是将计算任务分布到多个节点上,以实现高度可扩展性和容错性。它主要由以下几个部分组成: HDFS (Hadoop Distributed Fi…

PyTorch各种损失函数解析:深度学习模型优化的关键(1)

目录 详解pytorch中各种Loss functions binary_cross_entropy 用途 用法 参数 数学理论 示例代码 binary_cross_entropy_with_logits 用途 用法 参数 数学理论 示例代码 poisson_nll_loss 用途 用法 参数 数学理论 示例代码 cosine_embedding_loss 用途 …

揭秘程序栈:你的代码在幕后是怎么运行的?

计算机科学中,许多概念和原理可能会让开发者感到头疼,比如程序栈。这个看似晦涩的概念,实对我们理解程序运行至关重要。本文将以通俗易懂的方式,带你深入理解程序栈的工作原理和优化策略。 一、为什么需要栈? 栈是一…

Diffusion Models

DDPM x 0 ∼ q ( x 0 ) x_0 \sim q(x_0) x0​∼q(x0​)是真实数据分布,扩散模型学习一个分布 p θ ( x 0 ) p_\theta(x_0) pθ​(x0​)去逼近真实数据分布。 p θ ( x 0 ) : ∫ p θ ( x 0 : T ) d x 1 : T (1) p_\theta(x_0) : \int p_\theta(x_{0:T})dx_{1:T} \…

chatgpt的实用技巧四temperature 格式

四、temperature 格式 GPT3.5 temperature 的范围为:0-0.7; GPT4.0 temperature 的范围为:0-1; 当 temperature 为 0 时候,结果可稳定。 当 temperature 为 0.7/1 时候,结果发散具备创力。 数值越大&a…

设计模式的学习笔记

设计模式的学习笔记 一. 设计模式相关内容介绍 1 设计模式概述 1.1 软件设计模式的产生背景 设计模式最初并不是出现在软件设计中,而是被用于建筑领域的设计中。 1977 年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任 Christopher Alexander 在…

【Redis数据类型】String实现及应用场景

文章目录 String1、介绍2、内部实现整数值embstr 编码字符串raw编码字符串 3、常用命令4、应用场景缓存对象常规计数分布式锁共享session信息 参考:小林Coding Redis九种数据类型 Redis 提供了丰富的数据类型,常见的有五种:String&#xff08…

Debian 10.13.0 安装图解

引导和开始安装 这里直接回车确认即可,选择图形化安装方式。 选择语言 这里要区分一下,当前选中的语言作为安装过程中安装器所使用的语言,这里我们选择中文简体。不过细心的同学可能发现,当你选择安装器语言之后,后续安…

电力能源三维可视化合集 | 图扑数字孪生

电力能源是现代社会发展和运行的基石,渗透于工业、商业、农业、家庭生活等方方面面,它为经济、生活质量、环境保护和社会发展提供了巨大的机会和潜力。图扑软件应用自研 HT for Web 强大的渲染引擎,助力现代化的电力能源数字孪生场景&#xf…

运筹说 第95期 | 非线性规划奠基人——库恩与塔克

经过之前的学习,相信大家已经对运筹学的网络计划的内容有了一定的了解,接下来小编将带你学习新一章——非线性规划的内容,让我们先来了解一下非线性规划的诞生和发展历程,然后共同走近非线性规划领域的代表人物——库恩和塔克&…