八股文打卡day34——数据库(11)

面试题:谈一下你对MySQL中锁的了解?

我的回答:

首先,从锁的粒度来分,可以分为:
①全局锁。全局锁主要用于数据库的备份,加上全局锁,意味着整个数据库都处于只读的状态。
②行级锁。行级锁是用来锁定某一行数据记录的锁。
可以分为行级共享锁(读锁)和行级排他锁(写锁)。
当一行记录加了行级共享锁时,其他事务还可以进行读操作。
当一行记录加了行级排他锁时,其他事务既不可以进行读也不可以进行写。

行级锁中还有:
1.间隙锁。间隙锁就是给比如主键id的间隙中加锁,防止插入幻影数据。
2.临键锁。临键锁就是给主键id的间隙以及本身这个id加锁,防止插入幻影数据。

通过这两个锁从而防止幻读问题。
③表级锁。表级锁是用来锁定某一张表数据记录的锁。
表级锁中有意向锁。
为什么会有意向锁的出现呢。
比如我想给一张表加排他锁,我首先需要判断这张表中是否存在行级排他锁,如果存在行级排他锁,就会不兼容。如果这张表很大,有100万条数据,那么我就需要遍历100W条数据,去找是否存在行级排他锁,这样是十分耗时的。
这个时候就诞生了意向锁,可以将意向锁理解为一个标记。如果我在这张表中的某一行加了行级排他锁,那么就会加上对应的意向排他锁,从而标识这张表中存在行级排他锁。同理,如果给一张表中某一行加上了行级共享锁,那么也会给这行记录所属的表加上意向共享锁来进行标识。
这样就极大的提高了效率。

从性质来分的话,可以分为:共享读锁和独占写锁。
①共享读锁。就是给读操作加锁,for share字段。
②独占写锁。就是给写操作加锁,for update字段。

回答时间:2024.03.16

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

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

相关文章

初学者必看的python中类型转换

Python中常见的类型转换 int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real [,imag ]) 创建一个复数 str(x ) 将对象 x 转换为字符串 repr(x ) 将对象 x 转换为表达式字符串 eval(str ) 用来计算在字符串中…

`sig_atomic_t` 是C语言中的一个数据类型,它通常用于在信号处理程序中声明变量

例子 static volatile sig_atomic_t signal_num; static void SigTerm(int signo) {running 0;signal_num signo; }int main(int argc, char *argv[]) {signal(SIGTERM, SigTerm);signal(SIGINT, SigTerm); }sig_atomic_t 是C语言中的一个数据类型,它通常用于在信…

(57)最富有客户的资产总量

文章目录 1. 每日一言2. 题目3. 解题思路3.1 法一3.2 法二 4. 代码4.1 法一4.2 法二 5. 结语 1. 每日一言 Care and diligence bring luck. 谨慎和勤奋,带来好运气。 2. 题目 题目链接:最富有客户的资产总量 给你一个 m x n 的整数网格 accounts &…

作业字符数组

凯撒密码 凯撒密码(Caesar)加密时会将明文中的 每个字母 都按照其在字母表中的顺序向后(或向前)移动固 定数目( 循环移动 )作为密文。例如,当偏移量是左移 3 的时候(解密时的密钥…

python二级备考(3)-综合应用

1 《命运》是著名科幻作家倪匡的作品。这里给出《命运》的一个网络版本文件,文件名为“命运. txt”。 问题1 (5分) :在PY301-1. py文件中修改代码,对“命运. txt”文件进行字符频次统计,输出频次最高的中文字符(不包含标点符号)及其频次&…

SpringBoot Servlet容器启动解析

介绍 容器架构 容器处理请求 容器启动全局流程解析 启动前准备 WebServer创建入口 WebServer创建 Servlet启动 Web容器工厂类加载解析 Web容器个性化配置 属性注入 工厂类初始化 BeanPostProcessor方法实现 定制化流程 面试题 请描述下Servlet容器启动流程?介绍下…

Android什么情况下会出现内存泄漏以及怎么解决?

1.什么情况下会出现内存泄漏? (1)单例模式下为什么会造成内存泄漏? 因为单例的生命周期和应用的生命周期是一致的,如果往单例模式里面传了一个生命周期比较短的对象,比如Activity,就会导致Activity不能释放,导致内存泄漏。我们可以传context.getAppliactionContext,而…

周记-week3-人脸识别

感觉已经到极限了,,看看会不会上天~ 主要任务是人脸识别 Pytorch模型训练-----------数据集加载之ImageFolder之全过程 DataLoader的使用

4.10.CVAT——3D对象标注

文章目录 1. 创建任务2. 3D 任务工作区3.标准 3D 模式 Standard 3D mode4. 用长方体进行注释4.1. 用shapes进行注释4.2. 使用长方体进行跟踪Tracking 使用 3D 注释工具来标记 3D 对象和场景,例如车辆、建筑物、景观等。 1. 创建任务 要创建 3D 任务,您必…

hoverEnabled

hoverEnabled 是在 Qt Quick 中用于控制鼠标悬停事件是否可用的属性。当 hoverEnabled 设置为 true 时,表示该元素可以响应鼠标的悬停事件;设置为 false 时,则表示禁用鼠标悬停事件。 在 Qt Quick 中,鼠标悬停事件指的是当鼠标光…

kubernetes实战(2)

kubectl常用命令 1,创建deployment并启动pod(类似docker run): kubectl run --imagenginx nginx-app --port80 --env"DOMAINcluster" deployment "nginx-app" created 2,根据创建的deployment暴露新服务端口: kubect…

unity3d Animal Controller的Animal组件中General基础部分理解

控制器介绍 动物脚本负责控制动物的所有运动逻辑.它管理所有的动画师和刚体参数,以及所有的状态和模式,动物可以做。 动物控制器 是一个动画框架控制器,根动或到位,为任何生物或人形。它利用刚体与物理世界的互动和动画师的玩动画。 States States 是不互相重叠的动画。例如…

Redis语法总结

Redis语句总结 一、基本概念 Redis 全称: Remote Dictionary Server(远程字典服务器)的缩写,以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容。 使用C语言编写,并以内存作为数据存储介质&a…

PyTorch学习笔记之基础函数篇(十四)

文章目录 7.14 torch.fmod() 函数7.15 torch.remainder() 函数7.16 torch.frac() 函数7.17 torch.round() 函数 7.14 torch.fmod() 函数 在PyTorch中,torch.fmod 函数用于计算张量(tensor)中每个元素除以另一个张量或标量后的浮点余数1。 函…

复习知识点

1. Java常用API 1.1 String类 在java中,String类代表字符串,字符串是常量的,不能被改变。如果想改变字符串。可以用字符串的缓冲区,StringBuffer、StringBuilder 1.1.1 String类的创建方式 第一种(常用&#xff09…

一文搞懂PCL中自定义点云类型的构建与函数使用

上周猛男快乐开发时遇到个bug,要用pcl的函数对自定义的点云进行处理。一起解决问题时遇到了很多问题,解决后整理出来分享给各位参考,以免踩一样的坑😊。文章中自定义的点我用PointT来表示,自定义点云一般指的是pcl::Po…

什么是UUID?

UUID(Universally Unique Identifier)即通用唯一识别码,主要用于在分布式环境中生成全局唯一标识符的标准方法。 UUID是一个128位的数字,通常用32个十六进制数表示,并且按照特定格式显示, 例如&#xff1a…

Linux命令行学习之操作文件和目录

目录 通配符 mkdir – 创建目录 cp – 复制文件和目录 mv – 移动和重命名文件 rm – 删除文件和目录 ln – 创建链接 硬链接 符号链接 本文介绍Linux用于操作文件和目录的命令,介绍的命令有: cp – 复制文件和目录mv – 移动/重命名文件和目录…

文件上传漏洞------一句话木马原理解析

目录 一、实验环境 二、实验过程 构造一句话木马 一句话木马的使用: 木马原理解析: 一、实验环境 小皮面板搭建:upload-labs靶场 二、实验过程 构造一句话木马 这是一个最简单的一句话木马,我们用GET传参接受了两个参数,其最终目的是构造出:ass…

【SQLite数据库】的使用

SQLite数据库 文章目录 SQLite数据库0、linux基础知识补充1、SQLite简介1.1 SQLite & MySQL 的优缺点比较1.2 常见的嵌入式数据库 2、数据库的基本命令和用法2.1 创建数据库2.2 创建一张表格2.3 插入一条数据2.4 增加一列2.5 删2.6 改2.7 查看数据库 3、数据库编程3.1 实验…