当前位置: 首页 > news >正文

【锁】MySQL中有哪几种锁?

📚 欢迎来到我的Java八股文专栏! 🎉

各位程序员小伙伴们好呀~ 👋 我是雪碧聊技术,很高兴能在CSDN与大家相遇!✨

🚀 专栏介绍

这个专栏将专注于分享Java面试中的经典"八股文"知识点 💡,内容涵盖:

📌 Java基础核心概念
🧠 JVM原理与性能调优
🔄 多线程与并发编程
🏗️ 设计模式实战
🗃️ 常用框架源码解析
⚙️ 系统架构设计思想
🌟 为什么选择这个专栏?

🎯 精准定位:直击大厂Java面试高频考点
🧩 系统全面:从基础到进阶,构建完整知识体系
💎 实战导向:理论+代码示例,拒绝空谈
🔍 深度解析:不只是背诵,更要理解原理
🆕 持续更新:紧跟技术发展趋势
📖 学习建议

建议大家可以这样使用本专栏:

📅 每日一读:每天消化1-2个知识点
✍️ 动手实践:所有代码建议亲自敲一遍
🗂️ 分类整理:建立自己的知识脑图
🔄 定期复习:对抗遗忘曲线
💬 互动讨论:评论区欢迎交流探讨
🛠️ 工具推荐

学习过程中这些工具可能会帮到你:

🔧 IDEA:Java开发神器
📊 JProfiler:性能分析工具
🧪 JUnit:单元测试框架
📝 Markdown:笔记整理
🖇️ Git:版本控制
💌 致读者

技术之路道阻且长,但行则将至 ✊

在这个专栏中,我会:

✅ 用最通俗的语言解释复杂概念
✅ 提供可直接运行的代码示例
✅ 标注每个知识点的面试权重
✅ 分享实际项目中的经验教训
✅ 及时回复大家的疑问

🌈 最后寄语

"八股文"虽被诟病,但扎实的基础知识永远是程序员的立身之本 💪

希望这个专栏能成为你:

🎯 面试冲刺的利器
🏗️ 技术进阶的阶梯
🤝 结识同好的平台
让我们携手并进,在技术的星辰大海中扬帆远航! ⛵

记得⭐️收藏 ⭐️关注 ⭐️不迷路哦~ 😊

目录

一.乐观锁

二.悲观锁

三.共享锁(读锁)

四.排它锁(写锁)

五.表级锁

六.行级锁


一.乐观锁

乐观锁用数据版本(Version)记录机制实现,这是乐观锁最常用的一种实现方式。何谓数据版本?即为数据增加一个版本标识,一般是通过为数据库表增加一个数字类型的“version”字段来实现。当读取数据时,将version字段的值一同读出,数据每更新一次,对此version值加1。当我们提交更新的时候,判断数据库表对应记录的当前版本信息与第一次取出来的version值进行比对,如果数据库表当前版本号与第一次取出来的version值相等,则予以更新,否则认为是过期数据。

二.悲观锁

悲观锁在进行每次操作时都要通过获取锁才能进行对相同数据的操作,这点跟java中synchronized很相似,共享锁(读锁)和排它锁(写锁)是悲观锁的不同的实现。

三.共享锁(读锁)

共享锁又叫做读锁,所有的事务只能对其进行读操作不能写操作,加上共享锁后在事务结束之前其他事务只能再加共享锁,除此之外其他任何类型的锁都不能再加了。

四.排它锁(写锁)

若某个事物对某一行加上了排他锁,只能这个事务对其进行读写,在此事务结束之前,其他事务不能对其进行加任何锁,其他进程可以读取,不能进行写操作,需等待其释放。

五.表级锁


innodb的行锁是在有索引的情况下,没有索引的表是锁定全表的。

六.行级锁

行锁又分共享锁和排他锁,由字面意思理解,就是给某一行加上锁,也就是一条记录加上锁。

注意:行级锁都是基于索引的,如果一条SQL语句用不到索引是不会使用行级锁的,会使用表级锁。

http://www.xdnf.cn/news/1170145.html

相关文章:

  • 标记语言---XML
  • 《Webpack热更新瓶颈突破:全链路优化指南》
  • Java函数指南:从Function到BiFunction的深度解析
  • 从ZooKeeper到KRaft:Kafka架构演进与无ZooKeeper部署指南
  • React 面试题库
  • Redis 5.0中的 Stream是什么?
  • Vue开发常用库(含npm安装命令)
  • Linux中信号认识及处理和硬件中断与软中断的讲解
  • 设计模式七:抽象工厂模式(Abstract Factory Pattern)
  • el-input 动态获焦
  • An error occurred at line: 1 in the generated java file问题处理及tomcat指定对应的jdk运行
  • 对随机生成的html文件做标签简析
  • Python趣味算法:折半查找(二分查找)算法终极指南——原理、实现与优化
  • Spring 核心知识点梳理 1
  • Jmeter使用 - 2
  • 第十一章 用Java实现JVM之异常处理
  • 使用 Ansys Fluent 软件参数化工作流程对搅拌罐中的稳态涡流进行仿真
  • 质量即服务:从测试策略到平台运营的全链路作战手册
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(7):自動詞 & 他動詞
  • es6中的symbol基础知识
  • Lua语言
  • web登录页面
  • Elasticsearch Java 8.x 的聚合 API 及子聚合的用法
  • 外网访问内部私有局域网方案,解决运营商只分配内网IP不给公网IP问题
  • iOS加固工具有哪些?从零源码到深度混淆的全景解读
  • DearMom以“新生儿安全系统”重塑婴儿车价值,揽获CBME双项大奖
  • vue2.0 + elementui + i18n:实现多语言功能
  • fuse低代码工作流平台概述【已开源】-自研
  • Java中关于线程池的解析
  • Qt 事件处理机制深入剖析