美文网首页
mysql锁机制

mysql锁机制

作者: 码农GG | 来源:发表于2020-05-26 13:33 被阅读0次

一.定义

image.png

二.分类

1.从数据操作的类型(读、写)分:
读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响
写锁(排它锁):当前写操作没有完成前,它会阻断其他写锁和读锁。

2.从对数据操作的颗粒度:
表锁
行锁

三.三锁

1.表锁:
1.1特点:偏向MyISAM存储引擎,开销小,加锁快,无死锁,锁定粒度大,发生锁冲突的概率最高,并发最低

1.2.案例分析

image.png

1.3加读锁

image.png image.png image.png

1.4加写锁

image.png image.png

1.5结论分析

image.png

1.6表锁分析

image.png

2.行锁
2.1 特点
偏向InnoDB存储引擎,开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。
InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁

2.2事务(Transation)及其ACID属性

image.png

2.3并发事务处理带来的问题
更新丢失(Lost Update)
脏对(Dirty Reads)
不可重复读(Non-Repeatable Reads)
幻读(Phantom Reads)

2.4事务隔离级别

image.png

2.5案例分析

image.png

2.6无索引行锁升级为表锁
varchar 不用 ' ' 导致系统自动转换类型, 行锁变表锁

2.7间隙锁危害

image.png

2.8行锁分析

image.png image.png

2.9优化建议
1)尽可能让所有数据检索都通过索引来完成,避免无索引行锁升级为表锁。
2)合理设计索引,尽量缩小锁的范围
3)尽可能较少检索条件,避免间隙锁
4)尽量控制事务大小,减少锁定资源量和时间长度
5)尽可能低级别事务隔离

3.页锁
了解

相关文章

  • MySQL的锁机制

    MySQL锁简介 MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和...

  • MySQL的锁机制

    mysql的锁机制 1、MySQL锁的基本介绍 MyISAM:MySQL的表级锁有两种模式:表共享读锁(Table...

  • 共享 + 排他锁

    mysql锁机制分为表级锁和行级锁 ,mysql中行级锁中的共享锁与排他锁进行分享交流。 测试语法 begin; ...

  • 13.MySQL锁机制

    MySQL锁 相对于其他的数据库而言,MySQL的锁机制比较简单,最显著的特点就是不同的存储引擎支持不同的锁机制。...

  • MySQL学习

    MySQL锁概述 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。...

  • MySQL解锁与锁表

    MySQL锁概述 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。...

  • MySQL死锁及解决方案

    1 MySQL锁类型 1. MySQL常用存储引擎的锁机制 MyISAM和MEMORY采用表级锁(table-le...

  • MySQL表级锁和行级锁

    MySQL学习笔记(五):MySQL表级锁和行级锁 一:概述 相对其他数据库而言,MySQL的锁机制比较简单,其最...

  • MySQL锁机制漫谈(二)

    在MySQL锁机制漫谈(一)一文中,我们主要是探究了以下MySQL(主要是InnoDB)的锁的机制,但是我们平常经...

  • MySQL锁

    MySQL锁介绍 按照锁的粒度来说,MySQL主要包含三种类型(级别)的锁定机制: 全局锁:锁的是整个databa...

网友评论

      本文标题:mysql锁机制

      本文链接:https://www.haomeiwen.com/subject/yrhanhtx.html