锁(一)|学习笔记

简介: 快速学习锁(一)

开发者学堂课程【数据库核心概念:锁(一)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/63/detail/1147


锁(一)


内容介绍

一、简介

二、锁的分类


一、简介

本课程主要讲解 MySQL 锁机制。

在线程之中存在锁,在数据库当中也存在锁的概念,对于锁的存在有利有弊。锁的弊端在于如果表被锁了,其他数据无法更新查询,那么系统就挂了。类似于在交通层面上,如果一辆车出现刮蹭,就会堵塞交通,产生交通瘫痪。某种情况下,锁也有好处。

在 JAVA 课程当中,卖票的情况下,如果不加锁,用户就会互相争抢。假设数据库在凌晨两点时需要进行数据备份,恢复或容灾处理,此时 JAVA 上的数据的表不希望再有变更,防止其他用户变更,需要首先加上锁,防止别人改动。由此可得所有利有弊,必须将其一分为二而看。

对于锁的概念定义如下:

锁是计算机协调多个进程或线程并发访问某一资源的机制。也就是为了防止争抢。在数据库中,除传统的计算资源(如CPU、RAM、I/O等) 的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说锁对数据库而言显得尤其重要,也更加复杂。

例如,在淘宝上买一件商品, 商品只有一件库存,这个时候如果还有另-一个人买,那么如何解决是你买到还是另一个人买到的问题?如图所示:

image.png

如果是真实下单的情况就需要用到锁,要用到事务,我们先从库存表中取出物品数量,然后插入订单,付款后插入付款表信息,然后更新商品数量。在这个过程中,使用锁可以对有限的资源进行保护,解决隔离和并发的矛盾。以上内容在基础内容当中有所讲解。


二、锁的分类

将锁分为两种。第一种从对数据操作的类型分类,分为写锁和读锁:

读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响。

例如在课堂当中,教学软件购物享软件之后,学生端屏幕上显示教室屏幕内容,也就是教师端桌面同步,多位同学可以同时观看各自屏幕,而互不干涉。

写锁(排它锁) :当前写操作没有完成前,它会阻断其他写锁和读锁。例如在教师端写字时,同学不能进行书写。

从对数据操作的力度来分,分为表锁和行锁。

相关文章
|
5天前
|
存储 人工智能 关系型数据库
10个行锁、死锁案例⭐️24张加锁分析图🚀彻底搞懂Innodb行锁加锁规则!
10个行锁、死锁案例⭐️24张加锁分析图🚀彻底搞懂Innodb行锁加锁规则!
|
5天前
|
关系型数据库 MySQL 数据库
|
7月前
|
安全 算法 Java
可重入锁,不可重入锁,死锁的多种情况,以及产生的原因,如何解决,synchronized采用的锁策略(渣女圣经)自适应的底层,锁清除,锁粗化,CAS的部分应用
可重入锁,不可重入锁,死锁的多种情况,以及产生的原因,如何解决,synchronized采用的锁策略(渣女圣经)自适应的底层,锁清除,锁粗化,CAS的部分应用
|
存储 Java 对象存储
|
存储 安全 Java
|
SQL 存储 缓存
锁(二)|学习笔记
快速学习锁(二)
58 0
锁(二)|学习笔记
|
SQL 存储 NoSQL
锁(三)|学习笔记
快速学习锁(三)
56 0
锁(三)|学习笔记
|
SQL 存储 NoSQL
事务功能使用及原理介绍(一)|学习笔记
快速学习事务功能使用及原理介绍
258 0
事务功能使用及原理介绍(一)|学习笔记
|
存储 SQL NoSQL
事务功能使用及原理介绍(二)|学习笔记
快速学习事务功能使用及原理介绍
173 0
事务功能使用及原理介绍(二)|学习笔记
|
SQL 运维 监控
锁优化|学习笔记
快速学习锁优化
78 0