外贸网站谷歌推广/怎么推广公司网站
mysql全局锁
读锁(共享锁)
阻止其他用户更新,但允许他们读取数据。
写锁(排他锁)
阻止其他用户读取和更新数据。
全局锁场景:进行数据库备份
数据库备份
背景:备份数据肯定要保证数据一致性,比如你备份数据的时候插入或者修改了数据,肯定造成数据错乱。如果是那种订单表和套餐表。原来套餐表没有数据,如果备份过程中没有加锁,写入了一条98超值双人套餐记录
备份方式一
表结构
DROP TABLE IF EXISTS `bk_book`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `bk_book` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,`title` varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '标题',`short_description` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '简短介绍',`description` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '简介',`abstract` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '摘要信息',`is_finished` smallint(3) DEFAULT '1' COMMENT '是否完结 1是 其他否',`release_time` datetime DEFAULT NULL COMMENT '上架时间',`published_day` date DEFAULT NULL COMMENT '出版日期',`isbn` char(15) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT 'ISBN',`main_source_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '主站ID,主要用来标记信息体主要来源',`state` smallint(11) DEFAULT '1' COMMENT '状态 1可用 其他不可用',`is_indexed` tinyint(2) NOT NULL DEFAULT '0' COMMENT '标记是否已经更新到bk_index, 1是 0否',`created_at` datetime DEFAULT NULL COMMENT '创建时间',`updated_at` datetime DEFAULT NULL,`is_manual` int(4) NOT NULL DEFAULT '0' COMMENT '是否人工录入 1:是 0:否',`rating_label` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',`word_count` int(11) NOT NULL DEFAULT '0' COMMENT '书籍字数,审核后台排序使用',`title_alias` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '标题别名',`type` int(1) NOT NULL DEFAULT '1' COMMENT '图书的类型:1-txt,2-epub,3-pdf',`sub_type` int(4) NOT NULL DEFAULT '1' COMMENT '图书的类型:1-txt,2-epub,3-pdf,40-条漫,41-页面',`add_by` tinyint(4) NOT NULL DEFAULT '1' COMMENT '图书内容接入方式:1-api.2-spider,3-sdk',`url` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT 'epub/pdf图书的下载地址',`off_reason` varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '下架理由',`content_type` int(1) NOT NULL DEFAULT '1' COMMENT '图书内容类型:1-cp,2-非cp',`repeat_book_id` varchar(1000) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '重复的图书id',PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1676792430644794443 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `bk_book`
--
INSERT INTO `bk_book` VALUES (1530436864545149217,'绝世剑神','','天灵大陆,武道为尊!强者可以遨游天地,威震山河,弹指日月变色,翻手苍穹覆灭!神州大地年轻的武学宗师林辰,意外带着一尊神秘小鼎来到这个世界,成为雁南域天极宗的外门弟子。自此,海阔凭鱼跃,天高任鸟飞!且看林辰如何在这异界一步步踏上巅峰,凌九霄,破万劫,终成一代绝世剑神','',0,'1900-01-01 00:00:00','1900-01-01','',70,1,1,'2022-05-28 14:32:37','2023-01-03 14:20:47',1,'N',15329571,'[]',1,0,1,'http://api.yuedu.163.com/source/31762008','合约到期自动下线',1,'')
/*!40000 ALTER TABLE `bk_book` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
1、设置表只读模式 flush tables with read lock;
2、新的终端执行更新UPDATE
base_book.
bk_bookSET
state= 0 WHERE
id = 1530436864545149217;
发现一只在转圈就是被锁住了
3、备份数据库 mysqldump -uroot -p3306 base_book bk_book >bk_book.sql
4、备份完毕后执行unlock tables;
释放锁
最后发现锁解除就能成功更新sql语句了
备份方式二
利用mysql 的MVCC多版本并发控制,他可以保证数据一致性,能够保证数据库备份时保证。
–single-transaction:使用 --single-transaction 可以避免在备份大型数据库时出现长时间的锁定或阻塞现象,对生产环境的业务操作影响较小。但需要注意的是,备份的数据库引擎必须支持事务(如 InnoDB 引擎),如果使用的是 MyISAM 等不支持事务的引擎,该选项将被忽略。
mysqldump --single-transaction -uroot -p3306 base_book bk_book > bk_book.sql
同样达到数据一致性效果并且不用加锁。
表级锁
发生情况:
1、alter table
修改表:比如添加列、删除列、改变列类型。会造成整个表被锁住
2、drop table 删除整个表 和truncate table 删除表所有数据。
会造成整个表被锁住
3、lock tables:加一个或者多个表的锁 。lock tables t1 write,t2 read 会给t1 表加写锁,给t2表加读锁。
行锁
行锁只在事务中生效,在事务开启和提交或回滚前,才能对数据锁定。如果在非事务环境中执行slq语句,那么innodb在语句执行后就会立即释放所有锁。
共享锁(S锁)即读锁
排他锁(X锁)即写锁
导致行锁的情况
1、select … for update 悲观锁:这种查询会对选定的行添加一个排他锁(X锁 写锁),意味着其他事务不能修改这些行, 也不能对这些行添加共享锁(读锁)。
2、select … lock in share mode 这种会对选定的行添加一个共享锁(S锁),意味着其他事务不能修改这些行,但是可以添加共享锁(读锁)。
3、insert:插入操作会对新添加的行添加一个排他锁-X锁-写锁
4、update:更新操作会对被更新的行添加一个排他锁-X锁-写锁
5、delete:删除操作会对被删除的行添加一个 排他锁-X锁-写锁
这些锁是在事务中进行的,在事务开启和提交或回滚前,才能对数据锁定。如果在非事务环境中执行slq语句,那么innodb在语句执行后就会立即释放所有锁。
乐观锁和悲观锁
乐观锁
场景:
1、短事务操作
2、分布式系统
3、读多写少
悲观锁
场景:
1、写多读少
2、并发冲突高
3、业务需要强一致性
相关文章:

mysql各种锁总结
mysql全局锁 读锁(共享锁) 阻止其他用户更新,但允许他们读取数据。 写锁(排他锁) 阻止其他用户读取和更新数据。 全局锁场景:进行数据库备份 数据库备份 背景:备份数据肯定要保证数据一致…...

SpringSecurity--DelegatingFilterProxy工作流程
什么是 DelegatingFilterProxy? DelegatingFilterProxy 是 Spring 提供的一个特殊的过滤器,它起到了桥梁的作用,可以让你在 Spring 容器中管理 Servlet 容器中的过滤器。 为什么需要 DelegatingFilterProxy? 通常情况下&#x…...

GitHub每日最火火火项目(7.27)
1. 项目名称:meta - llama / llama3 项目介绍:这是 Meta Llama 3 的官方 GitHub 站点。目前尚不清楚该项目的具体功能和特点,但从名称推测,可能与 Llama 3 模型相关,或许涉及到模型的开发、训练或应用等方面。 项目地…...

git 学习总结
文章目录 一、 git 基础操作1、工作区2、暂存区3、本地仓库4、远程仓库 二、git 的本质三、分支git 命令总结 作者: baron 一、 git 基础操作 如图所示 git 总共有几个区域 工作区, 暂存区, 本地仓库, 远程仓库. 1、工作区 存放项目代码的地方,他有两种状态 Unm…...

《如何找到自己想做的事》
Arouse Enthusiasm, Give Scope to Skill, Explore The Essence *摘其两纸 我喜欢打篮球,并不是我真的喜欢这项运动,而是我喜欢团队竞技。我喜欢看书,并不是我真喜欢阅读,而是我想要了解世界运行逻辑。寻找热爱,探寻本…...

Vue中el的两种写法
大家好我是前端寄术区博主PleaSure乐事。今天了解到了Vue当中有关el的两种写法,记录下来与大家分享,希望对大家有所帮助。 方法一 解释 第一种方法我们直接用new创建并初始化一个新的 Vue 实例,并定义了 Vue 实例的数据对象,在给…...

ELK安装(Elasticsearch+Logstash+Kibana+Filebeat)
一、简介 1.1、软件简介 ELK其实是Elasticsearch,Logstash 和 Kibana三个产品的首字母缩写,这三款都是开源产品。 1.1.1、Elasticsearch简介 Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析…...

VScode使用Github Copilot插件时出现read ECONNREST问题的解决方法
文章目录 read ECONNREST查看是否仍是 Copilot 会员查看控制台输出网络连接问题浏览器设置问题笔者的话 read ECONNREST 最近使用 Copilot 时一直出现 read ECONNREST 问题,这个表示连接被对方重置了,就是说在读取数据时连接被关闭。 我首先怀疑是不是…...

充电桩浪涌保护方案—保障充电设施安全稳定运行的关键
在当今新能源汽车蓬勃发展的时代,充电桩作为电动汽车的“加油站”,其重要性不言而喻。然而,由于其复杂的电气环境和暴露于户外的特点,充电桩容易受到浪涌的影响。浪涌可能来自雷电、电网故障、大功率设备的启停等,对充…...

Python包管理工具pip
1、安装pip cmd管理员模式打开控制台 python -m pip install --upgrade pip 2、添加pip环境变量 pip 路径 C:\Users\1\AppData\Local\Programs\Python\Python312\Scripts...

最全国内13家DNS分享 解决网页被恶意跳转或无法打开问题
腾讯 DNS (DNSPod) 腾讯 DNS 是由 DNSPod 提供的公共免费 DNS 服务。DNSPod 已被腾讯收购,现在属于腾讯公司所有。该 DNS 服务稳定性和连通性良好,经测试在海外也可以使用。 DNSPod 提供了 IPv4、IPv6 DNS 和 DoT/DoH 服务。 IPv4 地址: 119.29.29.29…...

最新站长工具箱源码,拥有几百个功能,安装教程
最新站长工具箱源码,拥有几百个功能,安装教程 在 Docker 上运行 docker run -e LAFREGIONCN -e APPLANGzh_CN --name my-miaoda -v ~/.miaoda-docker:/root/.miaoda -d -p 0.0.0.0:39899:39899 codegentoolbox/laftools-linux-x64:latestNOTE: 默认端…...

【算法/训练】:动态规划(线性DP)
一、路径类 1. 字母收集 思路: 1、预处理 对输入的字符矩阵我们按照要求将其转换为数字分数,由于只能往下和往右走,因此走到(i,j)的位置要就是从(i - 1, j)往下走&#…...

计算巨头 Azure、AWS 和 GCP 的比较
云计算领域由三大主要参与者主导:Microsoft Azure、Amazon Web Services (AWS) 和 Google Cloud Platform (GCP)。每个平台都为希望利用云提供基础设施、平台服务等的企业提供强大的功能。在本文中,我们将深入探讨这些平台之间的差异,重点关注…...

Thinkphp5跨域问题常见的处理方法
在ThinkPHP5中,处理跨域问题通常涉及配置中间件或直接在控制器中设置响应头。以下是几种常见的解决跨域问题的方法: 1. 使用中间件处理跨域 你可以创建一个中间件来专门处理跨域请求。这个中间件会检查请求的来源,并设置相应的响应头来允许…...

Matlab编程资源库(9)数据插值与曲线拟合
一、一维数据插值 在MATLAB中,实现这些插值的函数是interp1,其调用格式为: Y1interp1(X,Y,X1,method) 函数根据X,Y的值,计算函数在X1处的值。X,Y是两个等长的已知向量,分别描述采样点和样本值,X1是一个向量…...

matplotlib的科研绘图辅助
matplotlib的科研绘图辅助 趁着暑假,与和鲸科技合作了一个python绘图的教程,作为暑期夏令营的一小部分,主要内容是介绍如何使用matplotlib、pandas、seaborn和plotnine进行医学科研绘图,感兴趣的可以通过如下地址进行访问&#x…...

C++内存管理(候捷)第五讲 笔记
GNU C对allocators的描述 new_allocator 和malloc_allocator,它们都没有特别的动作,无非底部调用operator new和malloc。它们没有用内存池 区别:::operator new是可重载的 智能型的allocator,使用内存池,分一大块然后…...

谷粒商城实战笔记-63-商品服务-API-品牌管理-OSS获取服务端签名
文章目录 一,创建第三方服务模块thrid-party1,创建一个名为gulimall-third-party的模块2,nacos上创建third-party命名空间,用来管理这个服务的所有配置3,配置pom文件4,配置文件5,单元测试6&…...

详细介绍BIO、NIO、IO多路复用(select、poll、epoll)
BIO、NIO、IO多路复用 BIO(Blocking IO)NIO(Non-blocking IO) 同步非阻塞IOIO多路复用selectpollepoll Redis的IO多路复用 BIO(Blocking IO) 最基础的IO模型,当进行IO操作时,线程会被阻塞,直到操作完成。 比如read和write,通常IO…...

昇思25天学习打卡营第11天|xiaoyushao
今天分享ResNet50迁移学习。 在实际应用场景中,由于训练数据集不足,所以很少有人会从头开始训练整个网络。普遍的做法是,在一个非常大的基础数据集上训练得到一个预训练模型,然后使用该模型来初始化网络的权重参数或作为固定特征提…...

为什么样本方差(sample variance)的分母是 n-1?
样本均值与样本方差的定义 首先来看一下均值,方差,样本均值与样本方差的定义 总体均值的定义: μ 1 n ∑ i 1 n X i \mu\frac{1}{n}\sum_{i1}^{n} X_i μn1i1∑nXi 也就是将总体中所有的样本值加总除以个数,也可以叫做总…...

编解码器架构
一、定义 0、机器翻译是序列转换模型的一个核心问题, 其输入和输出都是长度可变的序列。 为了处理这种类型的输入和输出, 我们设计一个包含两个主要组件的架构: 第一个组件是一个编码器(encoder): 它接受一…...

追问试面试系列:JVM运行时数据区
hi 欢迎来到追问试面试系列之JVM运行时数据区,在面试中出现频率非常高,并且其中还存在一些误导性的面试,一定要注意。 什么误导性呢?面试中,有的面试官本来是想问JVM运行时数据区,不过提问时难免有些让你觉得很不爽。比如:你说说java内存模型,还比如说说JVM内存模型,…...

React Native在移动端落地实践
在移动互联网产品迅猛发展的今天,技术的不断创新使得企业越来越注重降低成本、提升效率。为了在有限的开发资源下迅速推出高质量、用户体验好的产品,以实现公司发展,业界催生了许多移动端跨平台解决方案。这些方案不仅简化了开发流程…...

《操作系统》(学习笔记)(王道)
一、计算机系统概述 1.1 操作系统的基本概念 1.1.1 操作系统的概念 1.1.2 操作系统的特征 1.1.3 操作系统的目标和功能 1.2 操作系统的发展与分类 1.2.1 手工操作阶段(此阶段无操作系统) 1.2.2 批处理阶段(操作系统开始出现࿰…...

LabVIEW学习-LabVIEW处理带分隔符的字符串从而获取数据
带分隔符的字符串很好处理,只需要使用"分隔符字符串至一维字符串数组"函数或者"一维字符串数组至分隔符字符串"函数就可以很轻松地处理带分隔符地字符串。 这两个函数所在的位置为: 函数选板->字符串->附加字符串函数->分…...

freesql简单使用操作mysql数据库
参考:freesql中文官网指南 | FreeSql 官方文档 这两天准备做一个测试程序,往一个系统的数据表插入一批模拟设备数据,然后还要模拟设备终端发送数据包,看看系统的承压能力。 因为系统使用的第三方框架中用到了freesql,…...

使用Java和Spring Retry实现重试机制
使用Java和Spring Retry实现重试机制 大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天,我们将探讨如何在Java中使用Spring Retry来实现重试机制。重试机制在处理临时性故障和提高系统稳…...

Linux Vim教程(十):自定义配置与插件管理
目录 1. 概述 2. Vim 配置文件 2.1 .vimrc 文件 2.2 .gvimrc 文件 3. 自定义配置 3.1 自定义快捷键 3.2 自动命令 3.3 函数定义 4. 插件管理 4.1 插件管理工具 4.1.1 安装 vim-plug 4.1.2 配置 vim-plug 4.1.3 安装插件 4.2 常用插件 4.2.1 NERDTree 4.2.2 Fzf…...