锁(一)|学习笔记

简介: 快速学习锁(一)

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

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


锁(一)


内容介绍

一、简介

二、锁的分类


一、简介

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

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

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

对于锁的概念定义如下:

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

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

image.png

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


二、锁的分类

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

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

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

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

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

相关文章
|
2天前
|
数据采集 人工智能 安全
|
11天前
|
云安全 监控 安全
|
3天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1019 151
|
3天前
|
编解码 人工智能 机器人
通义万相2.6,模型使用指南
智能分镜 | 多镜头叙事 | 支持15秒视频生成 | 高品质声音生成 | 多人稳定对话
|
16天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1713 9
|
8天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
655 152
|
10天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
620 12
|
10天前
|
人工智能 自然语言处理 API
Next AI Draw.io:当AI遇见Draw.io图表绘制
Next AI Draw.io 是一款融合AI与图表绘制的开源工具,基于Next.js实现,支持自然语言生成架构图、流程图等专业图表。集成多款主流大模型,提供智能绘图、图像识别优化、版本管理等功能,部署简单,安全可控,助力技术文档与系统设计高效创作。
691 151