前言

数据库是一个共享资源,为了充分利用数据库资源,发挥数据

库共享资源的特点,应该允许多个用户并行地存取数据库。但这样就会产生多个用户程序并

发存取同一数据的情况,为了避免破坏一致性,所以必须提供并发控制机制。

并发控制是以事务(transaction)为单位进行的。

什么时候表锁什么时候行锁?

行锁是指的innodb引擎,只有通过索引条件检索数据,InnoDB才会使用行级锁,否则,InnoDB将使用表锁。

查看表锁

#查看是否有锁表的情况

show OPEN TABLES where In_use > 0;

#拼接hyq用户的kill语句,谨慎执行。

select concat('KILL ',id,';') from

information_schema.processlist where user='hyq';

#查看当前的事务

SELECT * FROM information_schema.innodb_trx;

#查看当前锁定的事务

SELECT * FROM information_schema.innodb_locks;

#查看当前等锁的事务

SELECT * FROM information_schema.innodb_lock_waits;

查看行锁

SHOW STATUS LIKE 'innodb_row_lock%';

四种事务隔离级别

一个事务对某个数据对象加锁后究竞拥有什么样控制是由封锁类型决定的,基本的锁有两种,排它锁(写锁、X锁),共享锁(读锁、S锁)。两者的相容关系如下:

例子:

未提交读(Read uncommitted)

未提交读是数据库事务隔离级别中最低的一种,在这种级别下,一个事务会读到另一个事务更新后但未提交的数据,如果事务1 rollback后,那么事务2读取的数据就是脏数据,简称脏读。

已提交读(Read Committed)

只能读取到已经提交的数据。在事务1内,多次读同一数据,在这个事务还没有结束时,如果事务2恰好修改了这个数据,那么,在事务1中,两次读取的数据就可能不一致。也就是说的不可重复读的问题。如下:

可重复读(Repeated Read)

可重复读就是多次读取的结果都一直,而不可重复读是指,在一个事务内,多次读同一数据,在这个事务还没有结束时,如果另一个事务恰好修改了这个数据,那么,在第一个事务中,两次读取的数据就可能不一致。在这种情况下可能会遇到幻读的问题如下:

可串行化(Serializable )

可串行性是并行调度正确性的唯一准则,所有事务按照次序依次执行,因此,脏读、不可重复读、幻读都不会出现。

为保证并行调度可串行性而提供的封锁协议。因此我们可以得出如下结论:这个事务级别的,其并行执行的结果一定是正确的,但是呢,由于串行执行,大大降低了并行度,所以一般不使用它。

欢迎来公众号【侠梦的开发笔记】 一起交流进步

mysql事务隔离的锁_mysql锁及四种事务隔离级别笔记相关推荐

  1. mysql中 回滚事务是什么_什么是事务?什么是回滚事务,以及四种事务的隔离级别...

    一.什么是事务? 事务的定义:事务由单独单元的一个或者多个sql语句组成,在这个单元中,每个mysql语句是相互依赖的.而整个单独单元作为一个不可分割的整体,如果单元中某条sql语句一旦执行失败或者产 ...

  2. mysql四种输入_mysql四种事务隔离级别

    mysql事务并发问题 ACID什么的就不啰嗦了.mysql多个事务并发的时候,可能会出现如下问题: 1. 更新丢失 即两个事务同时更新某一条数据,后执行的更新操作会覆盖先执行的更新操作,导致先执行的 ...

  3. mysql四种事务级别_【MySQL 知识】四种事务隔离级别

    摘要:本篇文章主要是为了对MySQL的四种事务隔离级别的介绍.为了保证数据库的正确性与一致性,数据库事务具有原子性(Atomicity).一致性(Consistency).隔离性(Isolation) ...

  4. 【MySQL】MySQL的四种事务隔离级别

    [MySQL]MySQL的四种事务隔离级别 本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一.事务的基本要素(ACID) 1.原子性(Atomicity):事 ...

  5. mysql四种事务隔离级别

    mysql事务并发问题 ACID什么的就不啰嗦了.mysql多个事务并发的时候,可能会出现如下问题: 1. 更新丢失 即两个事务同时更新某一条数据,后执行的更新操作会覆盖先执行的更新操作,导致先执行的 ...

  6. Mysql有四种事务隔离级别,详解脏读、不可重复读、幻读

    Mysql的事务隔离级别 Mysql有四种事务隔离级别,这四种隔离级别代表当存在多个事务并发冲突时,可能出现的脏读.不可重复读.幻读的问题. 脏读 大家看一下,我们有两个事务,一个是 Transact ...

  7. 数据库四种事务隔离级别详解

    四种数据库隔离级别及解决的数据问题如下所示: 1.READ-UNCOMMITTED(读取未提交内容) 由于在该隔离级别下即使事务未提交所做的修改也会对其他事务产生影响.所以该级别会出现数据脏读的发生. ...

  8. 手机android系统锁了怎么解决方法,手机锁码忘了怎么办 四种方法帮你解决【图文教程】...

    导语: 手机的密码锁是保护手机非常重要的一个手段,常见的手机密码锁有图案.数字符号.指纹.语音.人脸识别等.特别是图案和数字两种锁码更是得到了用户们的广泛使用,但是人们在使用锁码的时候常常面临这样的尴 ...

  9. mysql innodb排他锁_mysql 中innoDB引擎的事务喝共享锁喝排他锁

    存储引擎 innoDB 事务和锁共存(事务本身就是利用锁机制来完成) 1.共享锁: ①当前事务可以进行查询和修改操作,其他事务(线程)必须等当前事务提交后才能进行操作,查询可以查,但是结果并不是当前事 ...

  10. mysql平均锁_MySQL锁情况分析

    TIPS 本文基于MySQL 8.0.22 分析锁的三种方式 方式1: show status like '%innodb_row_lock%'; 可查看行锁相关的统计信息 方式2: SHOW ENG ...

最新文章

  1. plsql测试oracle存储过程,oracle存储过程基本结构的编写与plsql测试执行
  2. 计算机运用领域最高奖的是2016年,中国首获高性能计算应用领域最高奖
  3. js原理之执行上下文
  4. 面板没了_LCD面板疯狂涨价 白菜价的55寸4K电视没了
  5. error: 'for' loop initial declarations are only allowed in C99 mode
  6. bai的字怎么写_硬笔书法的连笔字应该要怎么写?
  7. 零基础mysql项目实例_MySQL-零基础开发
  8. TestNG配合ant脚本进行单元测试
  9. 银河麒麟4安装MySQL8_银河麒麟4.0.2安装教程-电脑系统安装手册
  10. 如何找到最快的DNS服务器!!
  11. java不同的包下相同的类名的问题与解决办法
  12. Hadoop JobTracker和NameNode运行时参数查看
  13. 破解access密码
  14. uniapp开发h5微信授权登录(详细教程)
  15. (转载)有关推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟输入区别...
  16. 非极大抑制(Non-Maximum Suppression)
  17. spring拦截器传递传递参数到controller+Aop切面环绕方法传递参数到目标方法
  18. 【整理】3dsMax中贴图显示模糊
  19. 【PDN仿真笔记7-使用Sigrity PowerSI进行PDN仿真的方法2】
  20. adblock plus规则下载(包含国内99%网站广告屏蔽规则)

热门文章

  1. origin 绘制箱图
  2. unity 引用using 空间 变量声明
  3. Atitt php script lan debug bp 最佳实践调试php目录1.1. Error_log 11.2. Echo vs log法 11.3. 输出与debug信息昏药问题
  4. Atitit ppt转换文本txt 目录 1.1. Atitit word ppt excel convert txt bp 等文档转换纯文本问题最佳实践.docx 1 1.2. 跨语言转换Open
  5. Atitit learn by need 需要的时候学与预先学习知识图谱路线图
  6. Atitit 图像处理—图像形态学(膨胀与腐蚀)
  7. Atitit.收银机小票打印功能的设计  java php c#.net版本
  8. atitit. orm mapping cfg 映射配置(3)-------hbnt one2maney cfg
  9. paip.python错误解决 0x64024e96 指令引用的 0x00000135 内存。该内存不能为 read。
  10. PAIP.ASP重复INCLUDE包含引起的重定义错误解决方案