标签:加锁

【mysql】の 锁机制 | 事务 | 二进制日志 | 备份还原(删库也不怕跑路了~)

【mysql】の 锁机制 | 事务 | 二进制日志 | 备份还原(删库也不怕跑路了~)

1、并发控制 mysql 数据库 同一时间会有多个用户一起使用 1.1 锁机制 加锁是为了限制别人的操作,不会影响自己。 锁类型: 读锁:共享锁,也称为 S 锁,只读不可写(包括当前事务) ,多个读互不阻塞 只能读 不能写 别人也能看 写锁:独占锁,排它锁,也称为 X 锁,写锁会阻塞其它事务(不包

Escape Escape 2024-07-04
0 0 0
MySQL 核心模块揭秘 | 22 期 | 行锁 (2) 慢速加锁

MySQL 核心模块揭秘 | 22 期 | 行锁 (2) 慢速加锁

目录1. 加过锁了吗?2. 需要等待吗?3. 先找个复用的行锁结构4. 没找到就申请一个新的5. 总结正文1. 加过锁了吗?快速加锁逻辑主打简单、快速,它只能处理简单的情况,即通过简单的判断就能确定本次加锁操作不会被阻塞。对于复杂一点的情况,就需要慢速加锁逻辑来处理了。关于什么是复杂的情况,可以看前

醒在深海的猫 醒在深海的猫 2024-06-26
0 0 0
21 期 | 行锁 (1) 快速加锁

21 期 | 行锁 (1) 快速加锁

行锁有两种加锁逻辑,这一期我们聊聊其中之一的快速加锁。 作者:操盛春,爱可生技术专家,公众号『一树一溪』作者,专注于研究 MySQL 和 OceanBase 源码。 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 行锁有两种加锁逻辑,这一期我们聊聊其中之一的快速加锁。

爱可生开源社区 爱可生开源社区 2024-06-24
0 0 0
MySQL 核心模块揭秘 | 21 期 | 行锁 (1) 快速加锁

MySQL 核心模块揭秘 | 21 期 | 行锁 (1) 快速加锁

目录1. 两种加锁逻辑2. 先拿个令牌3. 再获取行锁结构4. 快速加锁之一5. 快速加锁之二6. 慢速加锁条件有哪些?7. 总结正文1. 两种加锁逻辑更新、删除记录都需要加行锁,读取、插入记录有时候也需要加行锁,这意味着加行锁是个比较频繁的操作。对于频繁的操作,为了性能着想,优化是件必须要做的事。

醒在深海的猫 醒在深海的猫 2024-06-19
0 0 0
TiDB锁行为分析

TiDB锁行为分析

TiDB乐观事务实现原理 参考官网文档:https://docs.pingcap.com/zh/tidb/stable/optimistic-transaction TiDB加锁非原子操作,先读取,后加锁,可能存在写写冲突 其他数据库一般是在读的时候直接加锁,然后再修改。TiDB 在执行完 DM

宇宙之一粟 宇宙之一粟 2024-06-17
0 0 0
20 期 | MySQL 怎么加表锁?

20 期 | MySQL 怎么加表锁?

意向共享锁、意向排他锁、AUTO-INC 锁是 InnoDB 最常用的表锁,它们的加锁流程是什么样的? 作者:操盛春,爱可生技术专家,公众号『一树一溪』作者,专注于研究 MySQL 和 OceanBase 源码。 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 本文基

三掌柜 三掌柜 2024-06-13
0 0 0
MySQL 核心模块揭秘 | 20 期 | 怎么加表锁?

MySQL 核心模块揭秘 | 20 期 | 怎么加表锁?

目录1. 是否已经加锁?2. 先拿个令牌3. 会不会被阻塞?4. 申请表锁结构5. 总结正文1. 是否已经加锁?一个事务,在执行过程中,可能多次操作同一个表。如果多次操作都需要表锁保护,InnoDB 并不会简单粗暴的重复加锁。每次加表锁之前,如果 InnoDB 判断事务已经对这个表加了相同或者更高级

大白菜程序猿 大白菜程序猿 2024-06-12
0 0 0
腾讯一面:MySQL的共享锁和独占锁

腾讯一面:MySQL的共享锁和独占锁

在InnoDB存储引擎中,行级别锁有两种类型:共享锁(S锁)和排他锁(X锁),理解这 2种锁的工作机制及其交互关系对于掌握MySQL的并发控制和锁机制非常重要,因此,今天就来一起聊聊MySQL的共享锁和排他锁。申明:本文基于 MySQL 8.0.30 版本,InnoDB引擎。一、共享锁1.什么是共享

宇宙之一粟 宇宙之一粟 2024-06-06
0 0 0
聊聊乐观锁与悲观锁

聊聊乐观锁与悲观锁

悲观锁在MySQL中,悲观锁依赖数据库提供的锁机制来实现。在InnoDB引擎中,使用悲观锁需要先关闭MySQL数据库的自动提交属性,然后通过select ... for update来进行加锁。在数据库中,悲观锁的流程如下:• 在对记录进行修改前,先尝试为该记录加上排他锁(exclusive loc

法医 法医 2024-05-17
0 0 0
Java 并发编程中如何使用锁消除技术提高性能?

Java 并发编程中如何使用锁消除技术提高性能?

锁消除是一种 java 并发编程技术,通过消除不必要的加锁来提高性能。方法包括:对于不可变对象,无需加锁;对于线程局部变量,无需同步。基准测试表明,锁消除可以在 100 万次迭代中将方法执行时间从 15 秒减少到 1 秒。 Java 并发编程中使用锁消除技术提高性能 在 Java 并发编程中,锁消

大猫 大猫 2024-05-08
0 0 0
Java 函数中的双重检查加锁如何实现线程安全?

Java 函数中的双重检查加锁如何实现线程安全?

双重检查加锁是一种设计模式,通过双重检查来确保线程安全,在 java 函数中可以这样实现:定义一个静态 volatile 变量存储实例;如果实例为空,则同步区块内再检查一次,为空则创建实例;返回实例。实战案例:在共享资源的场景(如缓存类)中,使用双重检查加锁可以确保所有线程使用同一共享实例,避免数据

贤蛋大眼萌 贤蛋大眼萌 2024-05-03
0 0 0
如何使用锁机制确保 Java 函数的线程安全?

如何使用锁机制确保 Java 函数的线程安全?

答案:java 锁机制通过限制同一时间访问共享资源的线程数量来确保线程安全。实战案例:加锁方法使用 synchronized 关键字对方法加锁。实战案例:加锁代码块使用 synchronized 块对代码块加锁。实战案例:reentrantlock使用 reentrantlock 实例加锁,提供更细

大猫 大猫 2024-05-01
0 0 0
mysql 事务 serializable 对比 repeatableread 特殊场景的问题记录

mysql 事务 serializable 对比 repeatableread 特殊场景的问题记录

前置重要知识点:行锁是加在索引上的,如果字段没有索引,或者有索引,没有命中,会变成表锁,所以测试之前先保证对应字段有索引哦,避免测试结果有偏差 事务最高级别: serializable 设置当前会话级别: set session transaction isolation level serial

泡泡 泡泡 2024-04-26
0 0 0
学会MySQL(2)——间隙锁加锁算法分析

学会MySQL(2)——间隙锁加锁算法分析

引言 在进行死锁分析时,如果看 MySQL 的死锁日志云里雾里,那可能是我们对 MySQL 的加锁规则不甚了解,从而感觉分析无从下手。只能看代码,改 SQl 碰运气。有一句话说的好:我也不知道为什么这么改就好了,反正它已经能工作了! 所以,本文总结了各种常见的加锁情况,分析其加锁过程,以方便我们更好

爱可生开源社区 爱可生开源社区 2024-04-23
0 0 0
Redis缓存雪崩、穿透、击穿三步曲

Redis缓存雪崩、穿透、击穿三步曲

本文收集了一些 Redis 使用中经常遇到的一些问题,和与之相对应的解决方案,这些内容不但会出现在实际工作中,也是面试的高频问题,接下来一起来看。一、缓存雪崩缓存雪崩是指在短时间内,有大量缓存同时过期,导致大量的请求直接查询数据库,从而对数据库造成了巨大的压力,严重情况下可能会导致数据库宕机的情况叫

张二河 张二河 2024-04-18
0 0 0
synchronized和reentranlock的区别

synchronized和reentranlock的区别

synchronized 和 ReentrantLock 都是 Java 中提供的可重入锁: 用法不同:synchronized 可用来修饰普通方法、静态方法和代码块,而 ReentrantLock 只能用在代码块上。 获取锁和释放锁方式不同:synchronized 会自动加锁和释放

泡泡 泡泡 2024-02-29
0 0 0
没看过AQS源码,别说精通Java并发编程

没看过AQS源码,别说精通Java并发编程

前言AQS 全称 AbstractQueuedSynchronizer(抽象队列同步器),旨在作为创建锁和其他同步机制的基础,常见的同步锁 ReentrantLock、CountDownLatch、Semaphore、CyclicBarrier等都是基于 AQS 实现的。所以只有了解了AQS的实现原

贤蛋大眼萌 贤蛋大眼萌 2024-02-29
0 0 0
使用Golang实现文件锁的最佳实践

使用Golang实现文件锁的最佳实践

使用Golang实现文件锁的最佳实践 在开发中,我们经常会遇到需要对文件进行加锁的情况,以保证文件在多个goroutine或进程间的并发访问时能够正确操作。在Golang中,实现文件锁并不复杂,这篇文章将介绍如何使用Golang实现文件锁的最佳实践,包含具体的代码示例。 文件锁的作用 文件锁是一种在

剑圣无痕 剑圣无痕 2024-02-28
0 0 0
10个行锁、死锁案例⭐️24张加锁分析图🚀彻底搞懂Innodb行锁加锁规则!

10个行锁、死锁案例⭐️24张加锁分析图🚀彻底搞懂Innodb行锁加锁规则!

10个行锁、死锁案例⭐️24张加锁分析图🚀彻底搞懂Innodb行锁加锁规则! 上篇文章 我们描述原子性与隔离性的实现,其中描述读操作解决隔离性问题的方案时还遗留了一个问题:写操作是如何解决不同的隔离性问题? 本篇文章将会解决这个问题并描述MySQL中的锁、总结Innodb中行锁加锁规则、列举行锁、死

醒在深海的猫 醒在深海的猫 2024-02-20
0 0 0
分布式锁最终解决方案是RedLock吗?为什么?

分布式锁最终解决方案是RedLock吗?为什么?

RedLock 是 Redis 分布式锁的一种实现方案,由 Redis 的作者 Salvatore Sanfilippo 提出。RedLock 算法旨在解决单个 Redis 实例作为分布式锁时可能出现的单点故障问题,通过在多个独立运行的 Redis 实例上同时获取锁的方式来提高锁服务的可用性和安全性

Escape Escape 2024-01-10
0 0 0
1 2 3 4