草庐IT

一天吃透MySQL锁面试八股文

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~Github地址:https://github.com/Tyson0314/Java-learning为什么需要加锁如果有多个并发请求存取数据,在数据就可能会产生多个事务同时操作同一行数据。如果并发操作不加控制,不加锁的话,就可能写入了不正确的数据,或者导致读取了不正确的数据,破坏了数据的一致性。因此需要考虑加锁。表级锁和行级锁有什么区别?MyISA

MySQL 事务和锁

事务概述当多个用户访问同一份数据时,一个用户在更改数据的过程中,可能有其他用户同时发起更改请求,为保证数据库记录的更新从一个一致性状态变为另外一个一致性状态,使用事务处理是非常必要的,事务具有以下四个特性:原子性(Atomicity):事务中所有操作视为一个原子单位,即对事务所进行的数据修改等操作只能是完全回滚或完全提交一致性(Consistency):事务在完成时,必须使用所有的数据从一种一致性变更为另一种一致性状态,所有的变更都必须应用于事务的修改,以确保数据的完整性。事务的一致性由原子性、持久性和隔离性一起实现隔离性(Isolation):一个事务中的操作语句所做的修改必须与其他事务所做

MySQL 事务和锁

事务概述当多个用户访问同一份数据时,一个用户在更改数据的过程中,可能有其他用户同时发起更改请求,为保证数据库记录的更新从一个一致性状态变为另外一个一致性状态,使用事务处理是非常必要的,事务具有以下四个特性:原子性(Atomicity):事务中所有操作视为一个原子单位,即对事务所进行的数据修改等操作只能是完全回滚或完全提交一致性(Consistency):事务在完成时,必须使用所有的数据从一种一致性变更为另一种一致性状态,所有的变更都必须应用于事务的修改,以确保数据的完整性。事务的一致性由原子性、持久性和隔离性一起实现隔离性(Isolation):一个事务中的操作语句所做的修改必须与其他事务所做

mysql锁初识

MySQL锁的粒度分为:行级锁、表级锁、页级锁。一、行级锁(INNODB引擎)行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突。其加锁粒度最小,但加锁的开销也最大。行级锁分为共享锁和排他锁。特点:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。RecordLock,记录锁,也就是仅仅把一条记录锁上;GapLock,间隙锁,锁定一个范围,但是不包含记录本身;Next-KeyLock:RecordLock+GapLock的组合,锁定一个范围,并且锁定记录本身。二、表级锁(MYISAM引擎)表级锁是mysql中锁

mysql锁初识

MySQL锁的粒度分为:行级锁、表级锁、页级锁。一、行级锁(INNODB引擎)行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突。其加锁粒度最小,但加锁的开销也最大。行级锁分为共享锁和排他锁。特点:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。RecordLock,记录锁,也就是仅仅把一条记录锁上;GapLock,间隙锁,锁定一个范围,但是不包含记录本身;Next-KeyLock:RecordLock+GapLock的组合,锁定一个范围,并且锁定记录本身。二、表级锁(MYISAM引擎)表级锁是mysql中锁