Mysql(数据库)知识详解【6】~{锁,架构}

数据库锁和架构是两个不同的概念,但它们都与数据库管理系统(DBMS)的性能和并发控制有关。

  1. 数据库锁: 数据库锁是一种同步机制,用于控制多个事务对共享资源的访问。锁可以确保数据的一致性和完整性,防止多个事务同时修改相同的数据。根据锁的粒度和类型,可以分为以下几种:

    • 行锁:锁住单个数据行,允许其他事务访问未锁定的数据行。行锁具有高并发性,但可能导致死锁。
    • 表锁:锁住整个数据表,阻止其他事务访问表中的任何数据。表锁适用于大量数据操作,但并发性较低。
    • 页锁:锁住数据页,允许其他事务访问未锁定的数据页。页锁是行锁和表锁之间的折衷方案,具有一定的并发性和较低的死锁风险。
    • 读锁(共享锁):允许事务读取锁定的数据,但阻止其他事务修改数据。读锁适用于多个事务需要读取相同数据的场景。
    • 写锁(排他锁):阻止其他事务读取或修改锁定的数据。写锁适用于事务需要修改数据的场景。
  2. 数据库架构: 数据库架构是指数据库的整体结构和设计,包括表、视图、索引、存储过程等数据库对象的组织方式。一个好的数据库架构可以提高查询性能、降低存储成本、方便维护和管理。以下是一些常见的数据库架构:

    • 第三范式(3NF):通过消除数据冗余和依赖关系,确保数据的一致性和完整性。3NF架构适用于大多数业务场景,特别是需要保证数据质量的系统。
    • 星型模式(Star Schema):将事实表和维度表分开存储,便于进行大数据分析。星型模式适用于数据仓库和报表系统。
    • 雪花模式(Snowflake Schema):通过规范化维度表,减少数据冗余。雪花模式适用于需要进行复杂分析和多维报表的场景。
    • 无模式(NoSQL):不使用固定的表结构,允许灵活地存储和查询数据。无模式架构适用于大数据和实时分析场景。

总之,数据库锁和架构都是影响数据库性能和并发控制的重要因素。在实际应用中,需要根据业务需求和场景选择合适的锁策略和架构设计。

没有数据的命令后面不要加“;”分号(命令行中)

也就是说只有加锁的窗口可以解锁

全局锁:其他客户端写入数据也会阻塞

加了表锁,只能读表,不能更新表中数据

第一个方框为读锁,第二个为写锁,而右边的DQL DDL/DML为另一个客户端

exclusive:排他锁

commit后,元数据锁就会解除

简单来说就是有读写数据操作的事务未提交的情况下不能修改表结构

元数据锁这个锁主要就是增删改查的时候不给你修改表数据

会不会阻塞就看所加的锁会不会互斥,不互斥,是兼容的话就不会阻塞,而如果这些锁所在客户端的事务提交以后,与其互斥的锁所在客户端阻塞状态就会解除

如锁第34行的数据记录

间隙锁只锁间隙里的记录

临键锁锁间隙和第34行的记录

1、自动锁( Automatic Locks) 当进行一项数据库操作时,缺省情况下,系统自动为此数据库操作获得所有有必要的锁。

自动锁分为三种: DML 锁:

锁用于控制并发事务中的数据操纵,保证数据的一致性和完整性。 保护并发情况下的数据完整性。 语句能够自动地获得所需的表级锁(TM)与行级(事务)锁(TX)。 DDL 锁

锁用于保护数据库对象的结构,如表、索引等的结构定义。

排它 DDL 锁 创建、修改、删除一个数据库对象的 DDL 语句获得操作对象的 排它锁。

共享 DDL 锁 需在数据库对象之间建立相互依赖关系的 DDL 语句通常需共享获得 DDL锁。

如创建一个包,该包中的过程与函数引用了不同的数据库表,当编译此包时该事务就获得了引用表的共享 DDL 锁。如使用 alter table 语句时,为了维护数据的完成性、一致性、合法性,该事务获得一排它 DDL 锁

S代表共享锁

意向共享锁(IS锁):事务在请求S锁前,要先获得IS锁 2)意向排他锁(IX锁):事务在请求X锁前,要先获得IX锁

上面绿色方框是相应语法

前面的那个不可重复读的兄弟是可重复读,不可重复读是读已提交产生的后果

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

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

相关文章

AI 重写人类DNA,开源基因编辑器问世;安卓版Gemini新增多项功能

🦉 AI新闻 🚀 AI 重写人类DNA,开源基因编辑器问世 摘要:初创公司 Profluent 最新宣布,开发出世界首个完全由 AI 设计的基因编辑器,并成功应用于人类细胞 DNA,这一技术可谓是分子生物学的一大突…

【stomp 实战】spring websocket源码分析之握手请求的处理

上一节【搭建一套websocket推送平台】我们通过一个项目,实现了一套推送平台。由于spring框架对于websocket的支持和stomp协议的良好封装,我们很容易地就实现了websocket的消息推送功能。虽然搭建这么一套推送系统不难,但是如果不了解其底层原…

Linux中手工创建一个用户

当我们需要新创建一个用户时,有两种方法 1.使用命令添加用户 2.去配置文件里面添加用户 1,使用useradd命令: [rootlocalhost /]# useradd tmg 然后给它设置一个密码 [rootlocalhost etc]# passwd tmg Changing password for user tmg. N…

linux 系统文件目录颜色及特殊权限对应的颜色

什么决定文件目录的颜色和背景? 颜色 说明 栗子 权限白色表示普通文件 蓝色表示目录 绿色表示可执行文件 浅蓝色链接文件 黄色表示设备文件 红色 表示压缩文件 红色闪烁表示链接的文件有问题 灰色 表示其它文件 可以用字符表示文件的类型&am…

新风口下的必应bing国内广告投放该怎么做?

必应Bing作为全球搜索引擎市场的重要参与者,正逐渐显现出其在国内市场的独特价值和潜力。随着互联网生态的多元化发展,必应Bing凭借其高质量用户群和精准投放能力,成为了企业寻求新增长点的新风口。 一、洞察先机,精准定位市场 …

【Flink入门修炼】2-3 Flink Checkpoint 原理机制

如果让你来做一个有状态流式应用的故障恢复,你会如何来做呢? 单机和多机会遇到什么不同的问题? Flink Checkpoint 是做什么用的?原理是什么? 一、什么是 Checkpoint? Checkpoint 是对当前运行状态的完整记…

YOLOv8+PyQt5输电线路缺陷检测(目前最全面的类别检测,可以从图像、视频和摄像头三种路径检测)

1.效果视频:YOLOv8PyQt5输电线路缺陷检测(目前最全面的类别检测,可以从图像、视频和摄像头三种路径检测)_哔哩哔哩_bilibili 资源包含可视化的输电线路缺陷检测系统,可识别图片和视频当中出现的五类常见的输电线路缺陷…

web前端学习笔记2

2. 网页穿上美丽外衣 2.1 什么是CSS CSS (Cascading Style Sheets,层叠样式表),是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式(字体、间距和颜色等)的计算机语言,CSS 文件扩展名为 .css。 CSS样式包括对字体、颜色、边距、高度、宽度、背景图片、网页定位…

4.8 Python dict字典

Python dict字典详解 Python字典(dict)是一种无序的、可变的序列,它的元素以“键值对(key-value)”的形式存储。相对地,列表(list)和元组(tuple)都是有序的序…

Python中ArcPy按照分幅条带与成像日期拼接每个8天间隔内的遥感影像

本文介绍基于Python中的ArcPy模块,将大量遥感影像文件按照分幅条带编号与成像时间加以分组,并将同一分幅的遥感影像加以每个8天时间间隔内的镶嵌拼接的方法。 首先,来看一下本文具体的需求。我们现有一个文件夹,其中含有大量的.ti…

配置有效的防爬虫技术保护网站

本文主要介绍了防爬虫的概念、目的以及一些有效的防爬虫手段。防爬虫是指网站采取各种技术手段阻止爬虫程序对其数据进行抓取的过程。为了保护网站的数据和内容的安全性,防止经济损失和恶意竞争,以及减轻服务器负载,网站需要采取防爬虫机制。…

NIKKE胜利女神妮姬1.5周年(PC)怎么注册?账号注册教程一看就懂

游戏的世界观了一些轻科幻、末世和废土背景,剧情中也探讨了一些深刻的主题,比如NIKKE的人权问题。虽然整体剧情表现得连贯,但本质上有一些俗套情节,特别是在序章的玛丽安之死后,剧情逐渐失去了原有的紧张感&#xff0c…

那些你不知道的数据库知识:行式存储和列式存储

前几天听课,听到老师讲数据列式存储。 我🙋🏻‍♀️:等等,what,什么列式存储,数据一行一行的展示,然后一行一行的存在数据库里面不就好了,什么叫做列式存储,…

rust中结构体的属性默认是不能修改的,要想修改可以有两种方式

Rust中结构体里面的属性默认是不支持修改的,而且默认不是pub的,要想修改的话,有两种方式,我以为和python里面的类似呢,但是还是需要一点技术含量的。如果想在引到外部修改,需要声明pub,如果想在…

专利视角下的量子竞赛:《2024全球专利格局白皮书》

2024年1月,欧洲量子产业联盟(QuIC)发布了题为《全球量子技术专利格局描述》的综合白皮书。 该文件以透明的视角展示了当今的知识产权格局,包括知识产权持有人的地理分布。该文件由 QuIC 知识产权(IP)与贸易…

【C++】图的存储 -- 邻接表

目录 邻接表的创建使用dfs遍历图dfs遍历图的递归思想 邻接表的创建 #include <iostream> using namespace std; #include <vector>struct edge//创建边集类型 {int v;//出边int w;//权值 }; const int N 100010;//顶点数量 vector<edge> e[N];//邻接表int m…

淘宝新店有流量扶持吗

淘宝新店有流量扶持 淘宝新店需要做些推广提高店铺权重 淘宝新店用3an推客做推广比较好 3an推客是给商家提供的营销工具&#xff0c;3an推客CPS推广模式由商家自主设置佣金比例&#xff0c;以及设置商品优惠券&#xff0c;激励推广者去帮助商家推广商品链接&#xff0c;按最…

初步认识泛型

文章目录 泛型的编译擦除机制 泛型的上界泛型方法 泛型的编译 擦除机制 泛型到底是怎么编译的&#xff1f;这个问题&#xff0c;也是曾经的一个面试问题。泛型本质是非常难的语法 通过命令&#xff1a;javap -c 查看字节码文件&#xff0c;所有的T都是Object。 在编译的过程当…

“量子谷”启程!数亿资金注入,加速量子、人工智能创新

2024年4月23日&#xff0c;欧洲委员会启动了新一轮“地平线欧洲”&#xff08;Horizon Europe&#xff09;项目征集&#xff0c;动用资金总额超过1.12亿欧元&#xff08;约8.67亿人民币&#xff09;。此次征集活动主要面向人工智能&#xff08;AI&#xff09;与量子技术领域的前…

面试:JVM垃圾回收

一、三种垃圾回收算法 1、标记清除&#xff08;已废弃&#xff09; 找到根对象&#xff08;局部变量正在引用的对象、静态变量正在引用的对象&#xff09;&#xff1b;沿着根对象的引用链&#xff0c;查看当前的对象是否被根对象所引用&#xff0c;若被引用&#xff0c;则加上…