`

Mysql锁

 
阅读更多

1. 共享锁  排他锁 

select * from xxx where a=10 lock in share mode //共享锁

其他事务中的普通select和共享select可以;  排他读以及增删改会阻塞

 

select * from xxx where a=10 for update //排他锁

其他事务中普通select读可以;共享读、排他读和增删改,都会阻塞

 

2. 快照读(snapshot read) 和 当前读

普通读,是snapshot读,在当前事务中第一次读是打版本号,当前事务后续所有的普通读,都会跟第一次普通读结果一样或者读取当前事务中对相关记录的修改;共享读、排他读以及增删改,都会加锁,并且获取最新的数据

 

3. 间隙锁 (RR级别下)

 行锁会锁定满足条件的二级索引,主键索引对应的行,当条件无索引或全部满足,就相当于锁表;普通select读是快照读,会读取MVCC小于等于当前事务id的记录,所以不会读到别的事务修改的相同记录,GAP锁防止别的事务新增,行锁和GAP锁结合形成的的Next-Key锁共同解决了RR级别在写数据时的幻读问题。

详细见博客 https://tech.meituan.com/2014/08/20/innodb-lock.html

 

疑问:MVCC机制在RC级别下有什么用呢?

         MVCC可以保证所有普通读都是非阻塞读,写不影响读,且读到的事记录的镜像版本,大大提高并发能力

         见博客:http://www.imooc.com/article/17290?block_id=tuijian_wz#

4. 意向锁

    表级的意向锁,跟行锁是不冲突的,只是为了当一个事务快速判断当前表有没有行级锁使用,

    见https://juejin.im/post/5b85124f5188253010326360

 

5. mysql 各语句加锁分析

   http://www.fordba.com/lock-analyse-of-delete.html

 

 

分享到:
评论

相关推荐

    MYSQL锁机制全揭秘

    MySQL锁机制是数据库管理系统中用于协调多个事务或者进程,以保证数据的完整性和一致性的一套规则。在数据库操作中,保证数据并发访问时的一致性、有效性是至关重要的,锁机制正是为此而生。 MySQL支持不同存储引擎...

    MYSQL锁表问题的解决方法

    本文将介绍几种解决MySQL锁表问题的方法。 1. **查看并杀死锁定进程** 使用`SHOW PROCESSLIST`命令可以查看当前所有正在执行的SQL语句及其状态,包括是否被锁定。如果发现有锁定的进程,可以使用`KILL`命令来终止...

    mysql 锁机制及mysql中的锁介绍.pdf

    系统介绍mysql锁机制

    MYSQL 解锁与锁表介绍

    MySQL锁概述   相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁...

    MYSQL锁机制

    ### MySQL锁机制详解 #### 一、MySQL锁机制概述 MySQL中的锁机制是数据库管理系统用于控制并发事务对数据资源访问的关键技术之一。合理地管理和利用锁机制能够有效地防止数据不一致性和提高系统的并发处理能力。...

    MySQL锁的详细介绍

    "MySQL锁的详细介绍" MySQL锁机制是 MySQL 中的一个重要概念,它决定了数据库中数据的读写权限和并发控制。本文将对 MySQL 锁机制进行详细的介绍,包括锁分类、锁类型、锁机制、行锁原理等内容。 一、锁分类 ...

    mysql锁详解

    资源名称:mysql锁详解资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    mysql锁表解表

    MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景。而且,一旦alter table TableA的操作停滞在Waiting for table metadata lock的状态,后续对TableA的任何操作(包括读)...

    mysql锁解决并发问题共7页.pdf.zip

    这份名为"mysql锁解决并发问题共7页.pdf"的文档很可能详细阐述了这些锁机制及其应用场景。 在MySQL中,锁主要分为两大类:行级锁(Row-Level Locks)和表级锁(Table-Level Locks)。行级锁能提供更细粒度的锁定,...

    MySQL锁详细介绍

    MySQL锁是数据库管理系统中用于控制并发访问的一种机制,它的主要目的是确保在多用户环境中数据的一致性和完整性。在介绍MySQL锁之前,我们首先要理解为什么需要引入锁。在并发操作数据库时,可能出现数据不一致的...

    Mysql 锁机制的详细说明

    【MySQL 锁机制详解】 MySQL 的锁机制是数据库管理系统中用于协调多个并发事务对数据进行访问的一种机制,确保数据的一致性和完整性。在开发中,虽然我们可能并不总是主动使用锁,但它们在多用户环境下确保数据正确...

    MySQL锁与事务脑图.pdf

    MySQL锁与事务知识脑图

    MySQL锁类型以及子查询锁表问题、解锁1

    MySQL中的锁机制是数据库并发控制的关键部分,它确保了在多用户环境中数据的一致性和完整性。在MySQL中,主要存在两种类型的锁:行级锁(Row-Level Locks)和表级锁(Table-Level Locks)。InnoDB存储引擎默认支持...

    MySQL锁和事务、InnoDB架构分析.zip

    MySQL锁和事务、InnoDB架构分析.zipMySQL锁和事务、InnoDB架构分析.zipMySQL锁和事务、InnoDB架构分析.zipMySQL锁和事务、InnoDB架构分析.zipMySQL锁和事务、InnoDB架构分析.zipMySQL锁和事务、InnoDB架构分析....

    MySQL锁详解

    MySQL的锁机制对于数据库系统的性能和稳定性起着至关重要的作用。在数据库设计和开发过程中,合理地使用锁策略,能够有效避免死锁现象,提高并发处理能力。接下来,将详细介绍MySQL中的不同类型的锁及其适用场景。 ...

    MySQL锁机制_管理 .mht

    MySQL锁机制_管理(并发锁,行锁,表锁,预加锁,全局锁等等).mht

    mysql锁分析(csdn)————程序.pdf

    MySQL 锁分析 MySQL 锁机制是 MySQL 数据库中用于管理并发访问的机制, MySQL 锁机制主要有三种类型:表锁、行锁、页锁。每种锁机制都有其特点和应用场景。 表锁 表锁是 MySQL 中最基本的锁机制,表锁分为共享锁...

    MySQL锁竞争避免机制探析.pdf

    《MySQL锁竞争避免机制探析》 MySQL是一个广泛应用于互联网中小型网站的关系型数据库管理系统,以其体积小、速度快、开源等优势受到青睐。然而,在多线程环境下,不同用户并发对同一数据表进行读写操作时,锁竞争...

    深入理解Mysql锁与事务隔离级别1

    《深入理解MySQL锁与事务隔离级别》 在数据库管理中,锁和事务隔离级别是确保数据一致性与并发控制的重要概念。本文将详细阐述MySQL中的锁机制以及事务的四种隔离级别,以帮助读者更好地理解和应用这些关键概念。 ...

Global site tag (gtag.js) - Google Analytics