程序笔记   发布时间:2022-07-18  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

大家好,我是小于哥哈。前几天能分享了第一期面试题,MySQL 中有哪几种锁 和 这些锁各有哪些特点 ,这道面试题是经常会被问到的一个面试题,大家反馈的都挺不错的。今天特此来总结一下。

首发于公众号【终端研发部】

核心

@H_319_0@mysql锁机制,分为哪些锁,有什么样的特点?

目标

  • 锁的分类
  • 锁的特点
  • 锁的应用场景

【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

事务并发带来的问题与解决方案

【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

补充

1.脏读:一个事务可以读取到另一个事务未提交的数据。如下图:

【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

解决脏读:修改数据时加上写锁

【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

不可重复读:在一个事务中不同时间段查询出现不同的结果,可能被更新可能被删除。如下图

【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

解决不可重复读:事务A第一次读数据时加上读锁,事务B不能修改,会阻塞。

【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

3.幻读:在一个事务中不同时间段查询,记录数不同。与不可重复读的区别是:在幻读中,已经读取的数据不会改变,只是与以前相比,会有更多的数据满足查询条件。如下图:

【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

解决幻读:事务A范围查询时加上临键锁,锁住相邻区间,事务B不能插入到被锁住的区间,防止幻读。

【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

答案揭晓

按锁粒度分类:

  • 1、行级锁
  • 2、表级锁
  • 3、页级锁

解释:

1、表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

2、行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。

3、页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。

按照锁级别分类 :

解释:

1、共享锁:一旦上锁,任何事务(包括当前事务)无法对其修改,其他事务可以并发读取数据,也可在对此数据再加共享锁

2、排他锁(独占锁):如果事务对数据A加上排他锁后,则其他事务不可并发读取数据,也不能再对A加任何类型的锁。获准排他锁的事务既能读数据,又能修改数据。

3、意向锁: 分为意向共享锁和意向排他锁,特点: 意向锁是InnoDB自动加的,不需要用户干预。

ps: 如何学习java ,推荐两个白嫖学习的资料:

1、书籍:

codeGoogler/ProgramBooks

2:视频教程:

全网免费Java资源下载SpringBoot、Spring、Mybatis、redis、RabbitMQ、SpringCloud、高并发(持续更新)_这个时代,作为程序员可能要学习小程序-CSDN博客

最后

最后,照旧安利一波我们的工种号:「终端研发部」,目前每天都会推荐一篇优质的技术相关的文章,主要分享java相关的技术与面试技巧,我们的目标是:知道是什么,为什么,打好基础,做好每一点!这个主创技术公众号超级值得大家关注。

如果你有什么技术上的问题,都可以咨询我,技术路上漫长而优雅, 于哥可以一直陪伴。如果有帮助,欢迎点赞!

【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

大佬总结

以上是大佬教程为你收集整理的【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点全部内容,希望文章能够帮你解决【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。