赛门仕博做网站怎么样,网站代理备案步骤,濮阳网站公司,营销型网站一套加锁的目的 对数据加锁是为了解决事务的隔离性问题#xff0c;让事务之前相互不影响#xff0c;每个事务进行操作的时候都必须先加上一把锁#xff0c;防止其他事务同时操作数据。 事务的属性 #xff08;ACID#xff09;
原子性 一致性 隔离性 持久性
事务的隔离级别 锁…加锁的目的 对数据加锁是为了解决事务的隔离性问题让事务之前相互不影响每个事务进行操作的时候都必须先加上一把锁防止其他事务同时操作数据。 事务的属性 ACID
原子性 一致性 隔离性 持久性
事务的隔离级别 锁是基于什么实现的
数据库里面的锁是基于索引实现的在Innodb中我们的锁都是作用在索引上面的当我们的SQL命中索引时那么锁住的就是命中条件内的索引节点行锁如果没有命中索引的话那我们锁的就是整个索引树表锁
锁的级别
在MySQL中锁的级别可以分为行级锁、表级锁和数据库级锁三种。
行级锁Row-Level Lock它是对数据库中的某一行数据进行锁定只有在获得锁的事务才能访问和修改该行数据。行级锁可以提高并发性但是需要消耗更多的系统资源。
表级锁Table-Level Lock它是对整个表进行锁定只有获得锁的事务才能访问和修改表中的数据。表级锁可以减少锁冲突但是可能会降低并发性。
数据库级锁Database-Level Lock它是对整个数据库进行锁定只有获得锁的事务才能访问和修改数据库中的数据。数据库级锁可以用于对整个数据库进行备份和恢复操作。 锁的分类
按照属性分
1.共享锁也称读锁简称S锁当一个事务对数据加上读锁之后其他事务只能对该数据加读锁而无法对数据加写锁排他锁直到所有读锁释之后其他事务才能对其进行写锁排他锁
2.排他锁也称写锁简称X锁当 一个事务对数据加上写锁之后其他事务将不再为数据加任何锁直到该锁释放之后其他事务才能对数据进行加锁。 按照粒度分类
1.表锁 表锁是指上锁的时候锁住的是整个表当下一个事务访问该表的时候必须等前一个释放了锁才能进行对表进行访问。
2.行锁 记录锁、间隙锁、临键锁 状态锁
定义
状态锁包括意向共享锁和意向排他锁把他们区分为状态锁的一个核心逻辑是因为这两个锁都是描述是否可以对某一个表进行加表锁的状态 包括
1.意向共享锁IS
2.意向排他锁IX 使用
1.上表级别的S锁如果表上没有IX说明表中没有记录有独占锁其实就可以直接上表级S锁
2.上表级别的X锁如果表上没有IX和IS说明表中的所有记录都没加锁其实就可以直接上表级X锁。