MYSQL--锁机制*

一.对锁机制的大概介绍:

        1.大概的来说,MYSQL当中的锁实际上就是合理的管理多个服务器对于同一个共享资源的使用,是计算机协调多个进程或者是线程并发访问某一资源的机制(避免争抢资源的现象发生)

        2.在数据库当中,数据是一种可以供许多的用户进行共享使用的资源,如何保证数据并发访问的一致性,有效性是所有的数据库必须进行解决的一个关键问题,锁冲突也是影响数据库并发访问性能的一个重要因素.从这个角度来讲,锁对于数据库显得非常的重要,相同的,也更加的复杂

二.锁的大概分类

        1.从对于数据操作的力度区分:

1>表锁:操作的时候会对于整个表进行锁定

2>行锁,操作时,会锁定操作的行

        2.从对于数据操作的类型进行区分:

1>读锁(共享锁) :针对于同一份的数据,多个的读取操作可以同时的进行,并且并不会相互的有所影响(前提是并没有任何的更改数据操作)

2>写锁(排它锁) :在当前操作尚未完成之前,会阻断其他的读锁以及相应的写锁

三.MYSQL的锁机制:

        相比于其他的锁,MYSQL的锁机制比较的简单,最显著的特征就是针对不同的存储引擎有不同的锁机制

四:不同存储引擎的操作演示:

        1>MYISAM存储引擎:

        因为MYISAM仅仅只支持表锁,所以仅仅只讲解表锁得相关操作

        1.读锁:(lock table tablename read)

                进行读锁之后,发现两个都能够对这个表进行相应的数据查询,但是无法进行切换到其他的表以及进行相应的数据添加和修改.同时的两个都能够对于同一张表进行读锁的操作,不相冲突

                一旦加了读锁,就必须查看当前的表,不能对于其他的表进行操作,除非解除读锁(unlock tables)

        2.写锁(lock table test1 write):

        在左边加入了写锁之后,左边可以正常的进行查询当前锁表,并且进行一些修改,但是右边无法对其进行任何得操作,比如图中得查询操作,也会因为被上了写锁而让右边对其得查询被挂起,无法进行下去!

        通俗得说,写锁就是占用了一个其他任何人都无法进入得空间,仅仅只有当事人可以对其进行一定得操作,其他人都不能,解除写锁之后方可.并且,写锁仅仅只能一个服务器单独得针对一个表,而不能像读锁一样可以多个都进行添加锁

        2>InnoDB存储引擎:

        InnoDB的表锁跟MYISAM的大致上都是一样的,所以就不再概述,在这里主要讲解行锁的相关操作:

        同时为了方便观察,建议关闭事务的自动提交!

        1.行锁的特点:

        偏向于INNODB,开销比较的大,并且加锁比较的慢,锁的定位力度最小,但是,因为是对与一行一行的进行行锁,那么发生锁冲突的概率也是比较低的,并发度也是最高的(同时进行操作)

        1.共享锁(又称为读锁)  多个事务可以对于同一列进行访问数据,但是仅仅只能够进行读取,而不能够进行相应的修改数据

        2.排它锁(又称为写锁)  不能够与其他的锁并存,一个事务获得了一行数据的排他锁,那么其他的事务就不能够对其再次的进行获取,包括了读取以及修改,除非该锁打开

        如图,当没有提交事务之前,如果再对于同一个行的数据再次进行修改的时候就会被挂起,从而无法修改,但是!可以对于除了这一行的其他行进行修改!这就是行锁对于表锁的一大不同之处

        TIPS:

        对于DQL的相关操作:update insert delete操作,INNODB都会自动的进行添加排他锁

        对于普通的查询操作,并不会添加任何的锁

                                                                OVER!感谢观看

        

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue2:用node+express部署Vue项目

一、编译项目 命令 npm run build执行命令后,我们会在项目文件夹中看到如下生成的文件 二、部署Vue项目 接上一篇,nodeexpress编写轻量级服务 1、在demo中创建static文件夹 2、将dist目录中的文件放入static中 3、修改server.js文件 关键配置&…

Function calling流程总结 和 用于构建Agent的Function calling流程

Function calling流程总结的步骤如下: 自定义函数:根据用户需求,自定义函数chen_ming_algorithm,用于处理特定的任务。创建字典:根据自定义函数,创建一个字典chen_ming_function,其中包含自定义…

华为 OD 一面算法原题

2.2 亿彩票公布调查结果 昨天,闹得沸沸扬扬的《10 万中 2.2 亿》的彩票事件,迎来了官方公告。 简单来说,调查结果就是:一切正常,合规合法。 关于福利彩票事件,之前的推文我们已经分析过。 甚至在后面出现《…

云上攻防-云服务篇弹性计算服务器云数据库实例元数据控制角色AK控制台接管

知识点: 1、云服务-弹性计算服务器-元数据&SSRF&AK 2、云服务-云数据库-外部连接&权限提升 章节点: 云场景攻防:公有云,私有云,混合云,虚拟化集群,云桌面等 云厂商攻防:阿里云&am…

Kepler 参数化查询优化方法

写在前面 本文主要介绍了发布于 2023 年 SIGMOD 的论文《Kepler: Robust Learning for Faster Parametric Query Optimization》,该文章针对参数化查询,将参数化查询优化与查询优化结合,旨在减少查询规划时间的同时提高查询性能。 为此&…

【Java项目介绍和界面搭建】拼图小游戏——添加图片

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏 …

C++ 补充之常用排序算法

C 补充之常用排序算法 常用的排序算法主要包括冒泡排序、选择排序、插入排序、快速排序、归并排序和堆排序,下面简单介绍一下它们的概念和原理: 冒泡排序(Bubble Sort): 冒泡排序是一种基础的排序算法,它重…

作业1-224——P1015 [NOIP1999 普及组] 回文数

题目描述 思路 首先此题为一道高精度题,然后本题按照题目意思模拟即可。我们可以开两个数组来记录高精度数字,这样方便我们处理。判断“该数组是否回文”、“c翻转存入d再做cd”可以写成两个单独的函数。然后主程序组织一下他们即可。注意好退出循环的…

CSC联合培养博士生需要特别关注的几点问题

国家留学基金委(CSC)的联合培养博士生的申请方法、申报流程等,我们以往做过多次介绍,但因为在读博士本身的特殊性,申请时还应考虑其它因素,本篇知识人网小编谈谈联培博士生需要特别关注的问题。 一、注意安…

VIT速记

VIT架构 【ViT论文逐段精读【论文精读】】 【精准空降到 30:29】 https://www.bilibili.com/video/BV15P4y137jb/?share_sourcecopy_web&vd_sourcef09504571c3138e9e610217797aba3a4&t1829 首先把图片分为几个Patch,比如我们此时输入的图片为224*224*3&…

渗透测试靶场环境搭建

1.DVWA靶场 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,包含了OWASP TOP10的所有攻击漏洞的练习环境,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,同时…

判断闰年(1000-2000)

判断规则&#xff1a;1.能被4整除&#xff0c;不能被100整除是闰年,2.能被400整除是闰年 #include <stdio.h>int is_leap_year(int n){if((n % 400 0)||((n % 4 0)&&(n % 100 ! 0)))return 1;elsereturn 0; } int main() {int i 0;int count 0;for(i 1000;…

【C++精简版回顾】15.继承派生

1.继承派生的区别 继承&#xff1a;子继父业&#xff0c;就是子类完全继承父类的全部内容 派生&#xff1a;子类在父类的基础上发展 2.继承方式 1.public继承为原样继承 2.protected继承会把public继承改为protect继承 3.private继承会把public&#xff0c;protected继承改为pr…

179基于matlab的2D-VMD处理图像

基于matlab的2D-VMD处理图像&#xff0c;将图片进行VMD分解&#xff0c;得到K个子模态图&#xff0c;将每个模态图进行重构&#xff0c;得到近似的原图。可以利用这点进行图像去噪。程序已调通&#xff0c;可直接运行。 179 2D-VMD 图像分解重构 图像处理 (xiaohongshu.com)

什么是VR古迹探索|VR设备购买|VR文化旅游

VR古迹探索是利用虚拟现实&#xff08;Virtual Reality&#xff0c;简称VR&#xff09;技术来探索和体验历史古迹的方法。通过VR技术&#xff0c;人们可以在虚拟环境中逼真地模拟历史遗迹、古迹或文化遗产的场景&#xff0c;以全新的视角进行互动和探索。 通过VR古迹探索&#…

“智慧代码阁”千聊知识店铺成立了

前两天我在千聊上注册了知识店铺“智慧代码阁” 欢迎大家来购买更加精品的代码 点击这里进入知识店铺 非常感谢大家&#xff01;&#xff01;&#xff01; 欢迎来到“智慧代码阁”——您的专属知识宝库&#xff0c;专注于为代码爱好者和专业人士提供前沿、实用、系统的编程知…

、JMETER与它的组件们

os进程取样器 这个取样器可以让jmeter直接调用python写的测试数据 这样就可以调用python写的测试数据给到jmeter进行调用 注意&#xff1a;1建议python返回转json格式dumps一下&#xff1b;2py文件中需要把结果打印出来&#xff0c;可以不用函数直接编写 传到jmeter之后可以用…

手机备忘录导到电脑上有什么方法简单点

在这个信息爆炸的时代&#xff0c;我们每天都在处理海量的信息和待办事项。手机备忘录里记录着重要的灵感、会议安排、待购物品清单……但每次想在电脑上继续编辑或查看时&#xff0c;我都感到无比头疼。难道就没有一种简单的方法&#xff0c;能让手机备忘录和电脑轻松同步吗&a…

41、网络编程/TCP.UDP通信模型练习20240301

一、编写基于TCP的客户端实现以下功能&#xff1a; 通过键盘按键控制机械臂&#xff1a;w(红色臂角度增大)s&#xff08;红色臂角度减小&#xff09;d&#xff08;蓝色臂角度增大&#xff09;a&#xff08;蓝色臂角度减小&#xff09;按键控制机械臂 1.基于TCP服务器的机械臂…

fly-barrage 前端弹幕库(3):滚动弹幕的设计与实现

项目官网地址&#xff1a;https://fly-barrage.netlify.app/&#xff1b; &#x1f451;&#x1f40b;&#x1f389;如果感觉项目还不错的话&#xff0c;还请点下 star &#x1f31f;&#x1f31f;&#x1f31f;。 Gitee&#xff1a;https://gitee.com/fei_fei27/fly-barrage&a…